Hallo alle zusammen,
habe gerade ein Programm zur Datenübertragung auf die serielle Schnittstelle geschrieben. Die Wert werden auf ein Terminalprogramm wie Putty angezeigt.
Das Problem ist ,dass nur 00 angezeigt werden. Gestern lief es noch wie es sollte, jetzt habe ich es verschlimmbessert und den alten Code mit einem noch älteren
überschrieben.
Hier der Code. Ich habe ihn wieder auf ein Minimum verringert um eine größere Übersicht zu erreichen.
Gruß
Ralf
Einen Peglumsetzer habe ich mit 2 Transistoren gebaut und heute kam eine Schaltung mit dem Max232, beide dasselbe Verhalten.
habe gerade ein Programm zur Datenübertragung auf die serielle Schnittstelle geschrieben. Die Wert werden auf ein Terminalprogramm wie Putty angezeigt.
Das Problem ist ,dass nur 00 angezeigt werden. Gestern lief es noch wie es sollte, jetzt habe ich es verschlimmbessert und den alten Code mit einem noch älteren
überschrieben.
Hier der Code. Ich habe ihn wieder auf ein Minimum verringert um eine größere Übersicht zu erreichen.
Gruß
Ralf
Code:
#include <avr/io.h>
#define F_CPU 8000000 // nimmt die 8 MHz oder die QuatuFrequenz ?
#include <string.h>
#include <inttypes.h>
#include<util/delay.h>
#define BAUD 9600
#include <util/setbaud.h>
int i;
void USARTInit(void) // Initialisierung der uart
{
// UBRR = (fosc/(16*Baudrate))-1
//Set Baud rate
#define ubrr_value 51
UBRRL = ubrr_value;
UBRRH = (ubrr_value>>8);
//unsigned int size 8
UCSRC=(1<<URSEL)|(3<<UCSZ0);
//Enable The receiver and transmitter
UCSRB=(1<<RXEN)|(1<<TXEN);
}
char USARTReadChar(void) //Einlesen eines char, hier zum Beispiel unwichtig
{
//Wait untill a data is available
while(!(UCSRA & (1<<RXC)))
{
}
return UDR;
}
//##########################
void USARTWriteChar(char data) //Schreibmakro
{
while(!(UCSRA & (1<<UDRE)))
{
}
UDR=data;
}
//###################
int main()
{
USARTInit();
while(1)
{
for(i=0x30;i <= 0x50;i++) //Ausgabe der Ascii-Wert von 0x03 bis 0x50
{
USARTWriteChar(i);
_delay_ms(500);
}
}
}
Einen Peglumsetzer habe ich mit 2 Transistoren gebaut und heute kam eine Schaltung mit dem Max232, beide dasselbe Verhalten.