سلام
تو سایت گشتم چیزی در این باره پیدا نکردم.خودن انجامش دادم.حالا به اشتراک می ذارم همه استفاده کنن.
// Mehdi Naseri
//ba tashakor az moazami Goodarzi
#include "AT91SAM7x256.h"
#include "usart.h"
#include "delay.h"
#include <stdio.h>
int a , b;
char in;
void us_tx_int(void) __irq
{
*AT91C_PIOB_SODR = 0x80000 ; // PB.19 to be set
delay_ms(1);
*AT91C_PIOB_CODR = 0x80000; // PB.19 to be cleared
delay_ms(1);
AT91C_BASE_AIC->AIC_EOICR =1;
AT91C_BASE_AIC->AIC_ICCR = (1 << AT91C_ID_US0); /* Interrupt Ack*/
*AT91C_AIC_EOICR = 0; /* End of Interrupt*/
}
int main(void)
{
*AT91C_PIOB_PER = 0x80000; // Set in PIO mode
*AT91C_PIOB_OER = 0x80000; // Configure in Output
AT91C_BASE_AIC->AIC_SMR[AT91C_ID_US0] = AT91C_AIC_SRCTYPE_HIGH_LEVEL | 5;
AT91C_BASE_AIC->AIC_SVR[AT91C_ID_US0] = (unsigned long) us_tx_int;
AT91C_BASE_AIC->AIC_IECR = (1 << AT91C_ID_US0);
USART(18432000,9600,0);
usart0_init();
while(1){
printf("please wait...\n");
}
}