Hallo Ich möchte ein BTM222 Modul mit einem AVR koppeln. Kann ich als Levelshifter einen MAX3232 benutzen (3,3V - 5V) oder ist der MAX nur zur Kopplung an eine RS-232 gedacht? Gruß Alexis
wähle einen 3V3 volt AVR, alles andere macht nur kummer und nein, das is nicht der richtige levelshifter :)
In Richtung zum BTM tun es Spannungsteiler, in Richtung zum 5V-AVR kann man die 3V des Moduls noch als High durchgehen lassen. Ansonsten gilt zuvor Gesagtes.
Ich hab nun einen Spannungsteiler eingefügt und das ganze verkabelt. Zum Testen habe ich folgendes Programm gefunden: #include <avr/io.h> #define SYSCLK 8000000 #define BAUD 115200 #define UBRR_BAUD ((SYSCLK/(16*BAUD))-1) /* USART initialisieren */ void uart_init(void); int main(void) { unsigned char buffer; DDRA=0xff; /* USART initialisieren */ uart_init(); while (1) { /* Warten bis Daten empfangen wurden */ while (! (UCSRA & (1<<RXC)) ) ; /* Empfangsregister auslesen */ buffer = UDR; PORTA=buffer; /* Warten bis der Sendepuffer frei ist */ while (!( UCSRA & (1<<UDRE)) ) ; /* Daten in den Puffer schreiben und damit senden */ UDR = buffer; } } /* USART initialisieren */ void uart_init(void) { /* Baudrate einstellen ( Normaler Modus ) */ UBRRH = (unsigned char) (UBRR_BAUD>>8); UBRRL = (unsigned char) UBRR_BAUD; /* Aktivieren von receiver und transmitter */ UCSRB = (1<<RXEN)|(1<<TXEN); /* Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit */ UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); } Beim Compilieren schreibt AVR-Studio jedoch: ../Blink.c:24: error: 'UCSRA' undeclared (first use in this function) ../Blink.c:24: error: (Each undeclared identifier is reported only once ../Blink.c:24: error: for each function it appears in.) ../Blink.c:24: error: 'RXC' undeclared (first use in this function) ../Blink.c:28: error: 'UDR' undeclared (first use in this function) ../Blink.c:32: error: 'UDRE' undeclared (first use in this function) ../Blink.c: In function 'uart_init': ../Blink.c:44: error: 'UBRRH' undeclared (first use in this function) ../Blink.c:45: error: 'UBRRL' undeclared (first use in this function) ../Blink.c:48: error: 'UCSRB' undeclared (first use in this function) ../Blink.c:48: error: 'RXEN' undeclared (first use in this function) ../Blink.c:48: error: 'TXEN' undeclared (first use in this function) ../Blink.c:51: error: 'UCSRC' undeclared (first use in this function) ../Blink.c:51: error: 'URSEL' undeclared (first use in this function) ../Blink.c:51: error: 'UCSZ1' undeclared (first use in this function) ../Blink.c:51: error: 'UCSZ0' undeclared (first use in this function) make: *** [Blink.o] Error 1 Build failed with 15 errors and 0 warnings... was mache ich falsch?
Undeclared heißt, dass der Name nicht definiert ist. Welchen AVR benutzt Du? Du musst im Datenblatt gucken, ob die Register evtl. anders heißen. Da gibt´s zum Teil Unterschiede zwischen den AVRs.
1.8T-Passat hat recht, die Register heißen anders. Wenn du die betreffenden Register änderst sollte es funktionieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.