共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
我要赚赏金
