(Solved) Simple UART recieve interrupt not working
hello all!
im having problems uart interrupt.
the transmitter working fine, doesnt seem enter recieve interrupt routine when send character board. did miss step enabling interrupt vector?
this code:
im having problems uart interrupt.
the transmitter working fine, doesnt seem enter recieve interrupt routine when send character board. did miss step enabling interrupt vector?
this code:
code: [select]
#include "sam.h"
volatile uint8_t recchar = 0;
volatile uint8_t rec_flag = 0;
void uart0_handler(void)
{
piob->pio_sodr |= pio_pb27;
if ((uart->uart_sr & uart_sr_rxrdy) == uart_sr_rxrdy)
{
recchar = uart->uart_rhr;
rec_flag = 1;
}
}
void inituart(void)
{
reg_pioa_absr &= ~(pio_absr_p8); //peripheral på pin pa8 (dvs. aktiv pullup)
reg_pioa_absr &= ~(pio_absr_p9); //peripheral på pin pa9 (dvs. aktiv pullup)
reg_pioa_pdr |= pio_pdr_p8; //disable normal pin funktion på pa8
reg_pioa_pdr |= pio_pdr_p9; //disable normal pin funktion på pa9
pioa->pio_puer = pio_pa8a_urxd | pio_pa9a_utxd; //enable pullup på rx og tx
pmc->pmc_pcer0 |= pmc_pcer0_pid8; //enable uart0 clock
uart->uart_mr |= uart_mr_par_no; //ingen parity bit
//baud rate:
//cd = frequency of peripheral clock / (16 x desired baud rate)
//sætter til 19200 baud
//cd = 84mhz/(16* 19200)
uart->uart_brgr = 273;
uart->uart_ier |= uart_ier_rxrdy; //enable recieve interrupt
nvic_enableirq(uart_irqn); //enable uart interrupt controlleren
uart->uart_cr = uart_cr_txen |uart_cr_rxen; //enable transmit og recieve
}
int main(void)
{
/* initialize sam system */
systeminit();
__enable_irq();
inituart();
piob->pio_per |= pio_pb27;
piob->pio_oer |= pio_pb27;
piob->pio_codr |= pio_pb27;
while (1)
{
if(rec_flag == 1)
{
rec_flag = 0;
while (!(uart->uart_sr & uart_sr_txrdy));
while(!(uart->uart_sr & uart_sr_txempty)); //vent på @ byte bliver sendt, hvis den ikke er blevet sendt endnu
reg_uart_thr = recchar;
}
}
}
instead of :
void uart0_handler(void) {...
i try this:
void uart_handler(void) __attribute__((weak));
void uart_handler(void)
{ ......
Arduino Forum > Products > Arduino Due (Moderator: fabioc84) > (Solved) Simple UART recieve interrupt not working
arduino
Comments
Post a Comment