rdm6300 + atmega8 cannot receive rfid data

Thread Starter

devjeetmandal

Joined May 7, 2017
48
C:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <string.h>

#define buffer_size 64

void usart_init(unsigned int value);
void transmit_char(char cmd);
void transmit_string(char * cmd);
void blinkLed();

char buffer[buffer_size];
uint8_t readpos = 0;
uint8_t writepos = 0;



int main(void)
{
    _delay_ms(1000);
    DDRB = 0x01;

    blinkLed();
    usart_init(103);
    sei();
    readpos = 0;
    writepos = 0;
  
    while (1)
    {
        if (strstr(buffer,"2200BE2EE052"))
         {blinkLed(); writepos=0;}
    }
}

void blinkLed()
{
    PORTB=0xfe;
    _delay_ms(1000);
    PORTB=0x01;
    _delay_ms(1000);
}

void usart_init(unsigned int value)
{
    UBRRH = (value>>8);
    UBRRL = value;
  
    UCSRB |= (1<<RXEN) | (1<<RXCIE);
    UCSRC |= (1<<UCSZ0) | (1<<UCSZ1) | (1<<URSEL);
  
}


ISR(USART_RXC_vect)
{
  
    buffer[writepos] = UDR;
    writepos++;
    if(writepos>=buffer_size)
    {
        writepos = 0;
      
        for(int i=0;i<buffer_size;i++)
        buffer[I] = 0;
       
    }
}

whats going wrong?

Moderators note : used code tags
 
Last edited by a moderator:

Thread Starter

devjeetmandal

Joined May 7, 2017
48
Usart_init(103) suggest baud of 9600 at 16Mhz clock
Usart_init(8) suggest baud of 115200 at 16Mhz clock
And usart_init(6) suggest baud of 9600 at 1Mhz clock
I was using 1 mHz befor but then i set the fuse bit of atmega 8. And now i cn make it run on 16MHz external clock
 

Thread Starter

devjeetmandal

Joined May 7, 2017
48
I made a small project with a pir sensor.. which blinks led and switch on the fan as soon as it detects motion..i guess i have some problm with serial communication. And i vl try it after my exams. Thanks evry1 for your help.
 

MrChips

Joined Oct 2, 2009
34,809
So you do have Hyperterm.

Write a quick test program on the Atmega8 to send a single character to Hyperterm.
Test to verify that you have the correct baud.
 
Top