ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
10 мая
16574 Топик полностью
lamerok (12.11.2004 06:53, просмотров: 1) ответил ChumA на Здорово, т.е. прерывание от SPI будет обработано при возникновении IRQ от любого из указанных источников (поскольку сам флаг-то устанавливается)
Прерывание по SPI, будет обработано, только при возникновении прерывания от SPI.. Поскольку флаг устанавливаетсся только если есть прерывание по SPI if (S0SPINT &0x1) В любом другом случае этого флага не будет!!!! По крайней мере, так должно быть, и так и есть в моем проекте. И почему он у вас устанавливаетсявсегда непонятно... Возможно вы его не скидываете
void SPI_Exception(void)
{
    uint8 temp, temp1;

    temp = S0SPSR;
    if ((temp & 0x80) != 0)
    {
        temp1 = S0SPDR;
        OSMboxPost(SPIReviceMbox, (void *)temp1);
    }
    
    if ((temp & 0x10) != 0)
    {
        S0SPCR = 0xa0 | SPI_MOD;
    }
    S0SPINT = 0x01;  //Вот тут мы его скидываем!!!!!    
}