send multiple bits rf

algemene C code
Berichten: 42
Geregistreerd: 19 Mei 2016, 23:24

send multiple bits rf

Berichtdoor toku » 25 Jan 2019, 16:28

hey mensen

ik probeer met een atmega328p rf te zenden met deze tutorial : https://www.youtube.com/watch?v=3_omxGIL0kw&t=839s&pbjreload=10z
1 enkele bit werkt prima niks aan de hand maar als ik meerdere bits wil sturen doet hij niks meer.

mijn code :
Code: Alles selecteren
/*x
 * GccApplication1.c
 *u
 * Created: 30-8-2018 01:13:46
 * Author : Tom
 */
#include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>
#define  F_CPU 16000000
#define BUAD 9600
#define BRC ((F_CPU/16/BUAD)-1)
#define  TX_BUFFER_SIZE 128
uint8_t serialReadPos = 0;
uint8_t serialWritePos = 0;

void appendSerial(char c);
void serialWrite(char c[]);

char serialBuffer[TX_BUFFER_SIZE];
int main(void)
{
      UBRR0H = (BRC >> 8);
      UBRR0L = BRC;
      UCSR0B =  0b01001000;
      UCSR0C = 0b00000110;
      sei();
   serialWrite('hoi');

    while (1)
    {
    }
}
void appendSerial(char c)
{
   serialBuffer[serialWritePos] = c;
   serialWritePos++;
   
   if (serialWritePos >= TX_BUFFER_SIZE)
   {
      serialWritePos = 0;
   }
}
void serialWrite(char c[])
{
   for (uint8_t i = 0; i< strlen(c); i++)
   {
      appendSerial(c[i]);
   }
   if(UCSR0A & (1 << UDRE0))
   {
      UDR0 = 0;
   }
}
ISR(USART_TX_vect)
{
   if(serialReadPos != serialReadPos)
      {
         UDR0 = serialBuffer[serialReadPos];
         serialReadPos++;
         
         if(serialReadPos >= TX_BUFFER_SIZE)
         {
            
            serialReadPos = 0;
         }
         
      }

}

Advertisement

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten