Здравствуйте.
Пишу программу под PIC16f1825 в ( MPLAB X IDE v1.30 + HI-TECH PICC (v9.81) ).
Программа в общем виде состоит из двух блоков: главной функции main() и обработчика прерываний.
Так вот, столкнулся с такой проблемой, что не могу использовать функции параллельно в обоих блоках,
Функции эти:
Код
itoa_al( char *buff, uint32_t data ); //саописный аналог функции sprintf() для преобразования числа в строку
uartSendString( char *buff ); // функция отправки строки по uart
Т.е., если я в main() в бесонечном цикле преобразовываю любое число в строку и шлю его по uart'у, то в случае
определенного прерывания, вызывающего эти же две функции по uart'у отсылается не число а нули.
Если в main() эти две функции не использовать, то в обработчике прерывания они срабатывают нормально.
Код:
Код
#include <stdio.h>
#include <stdlib.h>
#include <pic.h>
//.................
static void interrupt isr(void)
{
//.......................
itoa_al( buff, 34 );
uartSendString( buff );
}
int main(int argc, char** argv)
{
//.........................
while(1)
{
delayMsTimer0( 2000 );
itoa_al( buff, 34 );
uartSendString( buff );
}
}
В чем может быть проблема?