[an error occurred while processing this directive]
Проблемы в передаче через UART
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Grigorij 01 августа 2006 г. 21:29

Здравствуйте!

Никак не могу разобраться в следующией проблеме. Имеет кусок кода, обеспечивающий передчу данных через UART со скоростью 115200, но при попытке вызвать ф-цию TransmitData(данные) в каком-либо обработчике прерывания вся программа виснит, хотя при вызове этойже ф-ции в ф-ции main() все работает превосходно.

Использую MSP430F413 (на стенде MSP430F413 STK2) и IAR Embedded Workbench Evaluation for MSP430 V3

#define BITTIME 0x045
#define BIT_CNT 0xA

unsigned Data;
unsigned BitCnt;

bool isTransmit = false;
unsigned *FlashPtr = (unsigned *)0x1000;

//пересылка данных (_data) по UART 115200 baud

void TransmitData(unsigned _data)
{
BitCnt = BIT_CNT;
Data = _data;
CCR0 = TAR;
CCR0 += BITTIME;
Data |= 0x100;
Data = Data << 1;
CCTL0 = OUTMOD0 + CCIE;

while (CCTL0 & CCIE);
}

#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
//пересылка данных

CCR0 += BITTIME;
if (BitCnt == 0)
CCTL0 &= ~CCIE;
else
{
CCTL0 |= OUTMOD2;
if (Data & 0x01)
CCTL0 &= ~ OUTMOD2;
Data = Data >> 1;
BitCnt--;
}
}

Буду признателен за любую помощь.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание