Hallo,
schlage mich mal wieder mit C herum.
Nun habe ich das Problem, dass die Variable bPortD nicht korrekt gesendet wird.
Kann es daran liegen, dass dies eine int ist und das eine char gesendet wird?
Code:#include <avr/io.h>
#include <stdint.h>
#include <util/delay.h>
#include <inttypes.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int i;
uint8_t bPortD;
void string_senden (const char *string);
void usart_initial();
int main(void)
{
DDRD |= (1<<4) | (1<<5);
usart_initial();
while(1)
{
bPortD = PIND;
string_senden (bPortD);
string_senden ("\n\r");
if (PIND & (1<<PIND7)){
string_senden ("Taster nicht gedrueckt\r\n");
}
if ( !(PIND & (1<<PIND7))){
string_senden ("Taster gedrueckt\r\n");
}
for (i=0; i<100; i++)
{
_delay_ms(10);
}
}
}
//-----------------------------------------------------
void usart_initial()
{
UBRRH = 0;
UBRRL = 7;
UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}
//-----------------------------------------------------
void string_senden (const char *string)
{
while (*string)
{
while (!(UCSRA & (1<<UDRE)))
{}
UDR = *string++;
}
}
//-----------------------------------------------------