共2条
1/1 1 跳转至页
SPI 急!为什么我用了两个定时器中断后SPI就不工作了?

问
在用一个定时中断的时候没有问题,在另外一个启动后,SPI就不能收到任何东西了,如果定时结束,SPI又恢复了。不知是什么原因?是不是因为定时器中断比SPI的高?可是只有一个时也工作正常啊!:(
答 1:
我用三个定时器(Basic Timer,Timer_A,Timer_B)中断,同时用SPI,也没有出现问题啊.
答 2:
类似的问题我以前也遇到过。
我估计可能中断时间逻辑没处理好,2个任务有冲突。要不允许中断嵌套试试,测以下是否任务冲突。 答 3: CounterTime1=600;
TACTL = TASSEL1 + TACLR;
CCTL0 = CCIE;
CCR0 = 35795;
TACTL |= MC0 + MC1;
_EINT();
CounterTime0=100;
P6DIR |= BIT5;
P6OUT |= BIT5;
TACTL = TASSEL1 + TACLR;
CCTL0 = CCIE;
CCR0 = 35795; //设定中断间隔
TACTL |= MC0 + MC1;
_EINT();
Init_spi();P3SEL &= ~0x10; //初始化SPI
buffer_rite_flash(0x55,20); //读页(spi操作)
read_buffer(0x56,206) 写buffer(spi操作)
interrupt[TIMERA0_VECTOR] void Timer_A (void)
{
if(CounterTime0)
{
CounterTime0--;
if(!CounterTime0)P6OUT &= ~BIT5; //BIT2取反,关背光
}
if(CounterTime1)
{
CounterTime1--;
if(!CounterTime1)End_communication();
}
}
interrupt[UART0RX_VECTOR]void UART0RX(void) spi中断接收
{
RxSPINoEmp=1;
recei_SPI=RXBUF0;
} 答 4: :confused:
我估计可能中断时间逻辑没处理好,2个任务有冲突。要不允许中断嵌套试试,测以下是否任务冲突。 答 3: CounterTime1=600;
TACTL = TASSEL1 + TACLR;
CCTL0 = CCIE;
CCR0 = 35795;
TACTL |= MC0 + MC1;
_EINT();
CounterTime0=100;
P6DIR |= BIT5;
P6OUT |= BIT5;
TACTL = TASSEL1 + TACLR;
CCTL0 = CCIE;
CCR0 = 35795; //设定中断间隔
TACTL |= MC0 + MC1;
_EINT();
Init_spi();P3SEL &= ~0x10; //初始化SPI
buffer_rite_flash(0x55,20); //读页(spi操作)
read_buffer(0x56,206) 写buffer(spi操作)
interrupt[TIMERA0_VECTOR] void Timer_A (void)
{
if(CounterTime0)
{
CounterTime0--;
if(!CounterTime0)P6OUT &= ~BIT5; //BIT2取反,关背光
}
if(CounterTime1)
{
CounterTime1--;
if(!CounterTime1)End_communication();
}
}
interrupt[UART0RX_VECTOR]void UART0RX(void) spi中断接收
{
RxSPINoEmp=1;
recei_SPI=RXBUF0;
} 答 4: :confused:
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 | |
【换取手持示波器】树莓派PICO逻辑分析仪被打赏16分 | |
【分享评测,赢取加热台】教你五分钟本地部署蒸馏版本的DeepSeekR1-7B被打赏12分 | |
【换取手持示波器】蓝牙音箱更换电池被打赏8分 | |
【换取手持示波器】鼠标更换微动开关被打赏10分 | |
【我要开发板】4.传感器移植被打赏50分 | |
【换取手持数字示波器】RISC-VGCC使用-fno-omit-frame-pointer编译选项实现栈回溯被打赏29分 | |
【分享评测,赢取加热台】+开关电源简述被打赏7分 | |
STM32WBA55ADC采集电池电压任务2被打赏1分 |