(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:

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

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor