Закоментил потому что в примерах нету __irq а вроде прерывание используется...
Сейчас ток запустил... к тому коду добавил следующее:
в конец обработчика прерывания строку
AT91C_BASE_AIC->AIC_EOICR = 0;
и раскоментил __irq
в сумме получил следующий код:
Код
#include <at91sam7s128.h>
extern "C" {
#include "Led.h"
}
unsigned char send_val = 0xA0;
void Usart_TX(void) __irq //!!!!!!!!!!!!!!!!!!! тут раскоментил !!!!!!!!!!!!!!!!!!!!!!!!!!!
{
unsigned int status;
// Read USART status
status = AT91C_BASE_US0->US_CSR;
if(status & AT91C_US_TXEMPTY)
{
AT91C_BASE_US0->US_THR = (unsigned short) send_val;
send_val++;
}
AT91C_BASE_AIC->AIC_EOICR = 0; // !!!!!!!!! тут добавил !!!!!!!!!!!!!!!!!!!!!!!!!!
}
int main(void)
{
// Configure PIO
AT91C_BASE_PIOA->PIO_ASR = AT91C_PIO_PA6;
AT91C_BASE_PIOA->PIO_PDR = AT91C_PIO_PA6;
AT91C_BASE_PIOA->PIO_OER |= AT91C_PIO_PA6;
// Enable usart
AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_US0;
// Reset and disable receiver & transmitter
AT91C_BASE_US0->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS;
// Configure mode
AT91C_BASE_US0->US_MR = AT91C_US_USMODE_NORMAL | AT91C_US_CHRL_8_BITS | AT91C_US_PAR_NONE;
// Configure baudrate
// Asynchronous, no oversampling
AT91C_BASE_US0->US_BRGR = 104;
// Enable interrupt
AT91C_BASE_US0->US_IER = AT91C_US_TXEMPTY;
AT91C_BASE_AIC->AIC_IDCR = 1 << AT91C_ID_US0;
AT91C_BASE_AIC->AIC_SMR[AT91C_ID_US0] = 0;
AT91C_BASE_AIC->AIC_SVR[AT91C_ID_US0] = (unsigned int) &Usart_TX;
AT91C_BASE_AIC->AIC_IECR = 1 << AT91C_ID_US0;
// Clear interrupt
AT91C_BASE_AIC->AIC_ICCR = 1 << AT91C_ID_US0;
// enable rx and tx
AT91C_BASE_US0->US_CR = AT91C_US_TXEN | AT91C_US_RXEN;
// Leds
Led_Init();
while(1)
{
Blink();
}
}
И УРА заработало!))))
Я скинул пример который смотрел и свой проект, может кто посмотрит как они там делают...пользовался поиском по всему проекту в попытке найти __irq ничего подобного там нет (в примере).
Мой код:
1.rar ( 131.89 килобайт )
Кол-во скачиваний: 75Пример:
basic_usart_hw_handshaking_project_at91sam7s_ek_keil.zip ( 266.9 килобайт )
Кол-во скачиваний: 79В примере открывал проект: basic-usart-hw-handshaking-project-at91sam7s-ek\at91sam7s-ek\basic-usart-hw-handshaking-project\uv2\at91sam7s128.uvproj