2664|0

4

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于30FSPI通讯的问题,困扰我好长时间了,请大侠帮忙 [复制链接]

关于30FSPI通讯的问题,困扰我好长时间了,请大侠帮忙

本人刚开始用PIC,要通过30F6011往30F2020里面送数据,现在先通过6011往2020里面送一个数据,再把这个数据送给2020的占空比寄存器,改变2020PWM2的占空比。但总是传输的数据不稳定,传送同样的一个数据每次占空比都不一样,检查了好几天,都查不出原因,实在没有办法了,请各位帮忙看一下,感激不尽。下面分别是6011的程序和2020的程序
6011的程序:
#include"p30f6011A.h"
_FOSC(0x0c302);                  //HS晶振,Failsafe 时钟关闭
_FWDT(WDT_OFF);                  //关闭看门狗定时器
_FBORPOR(PBOR_OFF & MCLR_EN);    //掉电复位禁止,MCLR复位使能。
_FGS(CODE_PROT_OFF);             //代码保护禁止

void initspi();
void spi();
void main()
{
    initspi();
    SPI2BUF=0x8800;
    while(SPI2STATbits.SPITBF==1);
    IFS1bits.SPI2IF=0;
    SPI2STATbits.SPIROV=0;
   
   
}

void initspi()
{
SPI2CON=0x047b;
SPI2STATbits.SPIROV=0;
SPI2STATbits.SPIEN=1;  
}



2020的程序:
.global __reset;
.global __SPI1Interrupt;
.include "p30f2020.inc"
__reset:                    ;软件器件复位
    nop

;PWM2
   mov   #0x0001, w1     ;PWM2控制寄存器设置  0X0411;  
   mov   w1, PWMCON2
   mov   #0xc800, w1   ;PWM2引脚设置0xc800
   mov   w1, IOCON2  
   mov   #2000, w1      ;定义死区时间
   mov   w1, DTR2
   mov   w1, ALTDTR2
   mov   #0, w1
   mov   w1, PHASE2
     
   mov   #24000, w1   ;PWM2周期设置
   mov   w1, PTPER              

   mov   #0x8000, w1         ;PWM控制寄存器
   mov   w1, PTCON                 
   clr   LATE
   mov   #0XFF00, w1
   mov   w1, TRISE
   mov   #20000,w0
   mov   w0,PDC2
   
   

;spi
  clr SPI1BUF
  bclr IFS0,#SPI1IF
  bset IEC0,#SPI1IE
    mov  #0x0007,w1
    mov  w1,IPC2
  mov  #0x0c59,w0      
  mov  w0,SPI1CON1     ;从模式,
  bclr SPI1STAT,#SPIROV
  bset SPI1STAT,#SPIEN
  
  loop:
    nop  
bra    End_Loop
End_Loop:
  bra    loop
      
/*****SPI Interrupt Service Routine*********/
__SPI1Interrupt:
disi #7
push.s
bclr IFS0 #SPI1IF,
bclr SPI1STAT, #SPIROV
mov SPI1BUF, w0
nop
mov w0,PDC2
bset IEC0,#SPI1IE
nop
pop.s
retfie
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【回帖赢京东卡】说说无线技术那些事儿
即日起—2月28日,参与回帖讨论都有机会赢取【30元京东卡】

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表