加入收藏 设为首页 帮助中心
 
论坛首页
用户登录 | 用户注册 | 最新悬赏 | 最新贴子 | 会员中心 | 贴子搜索 | 网站地图 | 帮助中心 | 联系我们
站内搜索:
现在位置 > 维库电子开发网论坛 > DSP 技术 > 关于dspic30f6014单片机控制mcp41010数...
帖子主题: 关于dspic30f6014单片机控制mcp41010数字电位器的程序
你还没有登录,无法发表回复,请首先 登录.. [注 册]
积分:262 dandywang3641
发表于:2008-5-8 10:13:00 楼主
级别:三星
积分:262分
注册:2006年08月13日
关于dspic30f6014单片机控制mcp41010数字电位器的程序

我最近在使用pic30f6014控制数字电位器mcp41010,程序总是没法运行,不知那位高人可以给看一下,谢谢
#include <p30f6014A.h>  
//#include <spi.h>

   _FOSC(CSW_FSCM_OFF & XT_PLL4);   //XT with 4xPLL oscillator, Failsafe clock off
   _FWDT(WDT_OFF);                  //Watchdog timer disabled
   _FBORPOR(PBOR_OFF & MCLR_EN);    //Brown-out reset disabled, MCLR reset enabled
   _FGS(CODE_PROT_OFF);             //Code protect disabled

#define Fcy 16000000

void delay(void)
{
short temp;
for (temp=0;temp<255;temp++)
  ;
}


int main(void)
{
//LATBbits.LATB2 = 1;   //不知此处SS1是否需要配置
//TRISBbits.TRISB2 = 1;


LATF = 0x0000;
TRISF = 0x0080;


while(1)
{

//LATBbits.LATB2 = 0;

IFS0bits.SPI1IF = 0;
IEC0bits.SPI1IE = 1;
IPC2bits.SPI1IP = 0x010;

SPI1BUF = 0x0;           //SPI相关寄存器配置
SPI1STAT = 0x0;
SPI1CON = 0x043C;
SPI1STAT = 0x8000;

LATDbits.LATD10 = 0; //mcp41010的片选CS接在DSP的RD10
SPI1BUF = 0x11F0;     //前八位是命令字,后8位是电阻值
while(!IFS0bits.SPI1IF);  
LATDbits.LATD10 = 1;
//LATBbits.LATB2 = 1;
delay();
}return 1;
}

 
积分:692 ATAO涛7677
发表于:2008-5-8 10:13:00 1 楼
级别:五星
积分:692分
注册:2006年08月13日

很简单很实用的程序~~
 
积分:230 vhe1100
发表于:2008-5-8 10:13:00 2 楼
级别:三星
积分:230分
注册:2006年08月13日

才学51没多长时间.......最近也做了MCP41010测试....成功了.......和大家一起分享....主要程序如下:

void Write_RES(uchar dat)         //调整数字电位器
{
uchar i,dat1,command=0x11;
dat1=dat;

RES_CS = 1;
SCK = 1;
RES_CS = 0;               //片选    
SCK = 0;

for(i=8;i>0;i--)       //写命令8位
{
command <<= 1;  
DI  = CY;    
SCK = 1;_nop_();
SCK = 0;
}

for(i=8;i>0;i--)          //写数据八位
{
dat1 <<= 1;
DI  = CY;
SCK = 1 ;_nop_();
SCK = 0 ;
}

RES_CS = 1;_nop_();

       //如果不写以下空操作程序,电位器不能连续调整,这点不知道为什么....,说明书上也没讲...我自己花时间调试出来的.....
RES_CS = 0;
         for(i=16;i>0;i--)         //空操作
{
DI  = 0;
SCK = 1 ;_nop_();
SCK = 0 ;
}

RES_CS = 1;_nop_();
DI  = 1;
SCK = 1 ;
}

 
积分:917 jsj57634590
发表于:2008-5-8 10:13:00 3 楼
级别:一钻
积分:917分
注册:2006年08月13日

好像全我是回的贴嘛,,这人都去哪里了吗?
 
积分:780 紫夜
发表于:2008-5-12 13:59:00 4 楼
级别:五星
积分:780分
注册:2008年03月04日

一起分享

 


面向广大中国电子设计工程师推出的网络信息服务类门户站点----欢迎 维库电子开发网

 
快速回复:
用户名: 密码:  验证码,看不清楚?请点击刷新验证码 注册新帐号?
上传图片格式(jpg/gif/png)和文件格式(rar/pdf)
 
 
网站简介广告服务网站地图帮助信息联系方式问题报告
Copyright 2007 - 2008 bbs.weeqoo.com
Powered By weeqoo Version 8.0.0