共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 设备功耗web监控界面(ESP32C5)被打赏¥28元 | |
| OrangePiZero2W系统被打赏¥33元 | |
| Linux环境下以模拟方式快速实现出入管理功能测试被打赏¥24元 | |
| 树莓派3+Klipper,老3D打印机满血升级被打赏¥33元 | |
| OK1126B-S开发板下串口屏及其应用被打赏¥21元 | |
| 低功耗超声波液位测距仪(ESP32S3)被打赏¥27元 | |
| 在K230DBOX上实现多时段语音提示功能被打赏¥14元 | |
| 使K230DBOX实现相机持续拍照功能被打赏¥12元 | |
| 基于K230DBOX的文本管理器设计被打赏¥14元 | |
| 基于K230DBOX的彩色画板功能实现被打赏¥15元 | |
我要赚赏金
