Hallo, habe ein Atmega32, FTDI-Kabel, Vinculo-Board, und bin Motiviert. Hätte gerne eine Verbindung zwischen PC und Controller via Uart (TX, DX) aufgebaut. Habe schon einiges versucht, aber ohne Erfolg!! Kann wer ein Tipp geben wie ich in c# ein kleines Signal an den PC schicken und den durch ein z.B.: ein Hyperterminal sichtbar mach?? Vielleicht ein kleines Projekt im Netz was schon Funktioniert und das ich verstehen kann. Lg georg
georg georg schrieb: > Kann wer ein Tipp geben wie ich in c# ein kleines Signal an den PC > schicken und den durch ein z.B.: ein Hyperterminal sichtbar mach?? Fang erst mal in die umgekehrte Richtung an: Der µC sendet die ganze Zeit mit einer bestimmten Baudrate und dein Hyperterminal soll an der 'Seriellen' lauschen und das darstellen. Damit debuggst du erst mal alle Problemkreise, die sich um * falsche Baudrate * falsche QUarzferquenz * falsch gekreuztes Kabel ergben. Funktionierts in diese Richtung (µC->PC), dann funktionierts in die andere Richtung auf Anhieb. > Vielleicht ein kleines Projekt im Netz was schon Funktioniert und das > ich verstehen kann. Wenn du deine Hardware fehlerfrei hast, findest du dann auch im Netz jede Menge Codebeispiele, die zeigen wie man mit C# die Serielle anspricht und Zeichen auf den Weg bringt. Aber erst mal muss dein Übertragungskanal stehen. Und den kriegst du am Vernünftigsten fehlerfrei, wenn du das Spielchen "Stochern im Nebel" aufgibst und dir eine Möglichkeit suchst, wie du überprüfen kannst, ob am Ende der Strecke auch das ankommt, was du am Anfang reinsteckst. Da davon auszugehen ist, dass die Serielle am PC korrekt funktioniert, ist das dann eben µC->PC. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART
Hallo, Danke dir für deine Anwort! Hartware müsste Top sein! Habe diesen Code mit meien Einstellunfgen auf einen Atmega32 geflasht.. extern 12Mhz (Auch so geFust) FT232R Kabek auf Pin 14, 15 (TX,DX) (Orange,Gelb) Dieses Prog solte Uart mit eienm vom Terminal am µP einlessen und wider zurücksenden!? Tut es aber nicht!? Kann es sein das ich beim FT232R Kabel was falsch mache?
1 | #include <avr/io.h> |
2 | #include <inttypes.h> |
3 | |
4 | |
5 | // Sollte schon im Makefile definiert sein.
|
6 | // In dem Fall hier einfach löschen.
|
7 | #define F_CPU 12000000UL
|
8 | |
9 | #define BAUD 19200UL
|
10 | #define UBRR_BAUD ((F_CPU/(16L*BAUD))-1)
|
11 | |
12 | // USART initialisieren
|
13 | void uart_init(void) |
14 | {
|
15 | // Baudrate einstellen (Normaler Modus)
|
16 | UBRRH = (uint8_t) (UBRR_BAUD>>8 ); |
17 | UBRRL = (uint8_t)UBRR_BAUD; |
18 | |
19 | // Aktivieren von receiver und transmitter
|
20 | UCSRB = (1<<TXEN) | (1<<RXEN); |
21 | |
22 | // Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
|
23 | UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); |
24 | //UCSRC |= (1<<URSEL)|(3<<UCSZ0);
|
25 | }
|
26 | |
27 | int main(void) |
28 | {
|
29 | uint8_t buffer; |
30 | |
31 | // USART initialisieren
|
32 | uart_init(); |
33 | |
34 | while (1) |
35 | {
|
36 | // Warten bis Daten empfangen wurden
|
37 | while ( !(UCSRA & (1<<RXC)) ); |
38 | |
39 | // Empfangsregister auslesen
|
40 | buffer = UDR; |
41 | |
42 | // Warten bis der Sendepuffer frei ist
|
43 | while ( !( UCSRA & (1<<UDRE)) ); |
44 | |
45 | // Daten in den Puffer schreiben und damit senden
|
46 | UDR = buffer; |
47 | |
48 | |
49 | }
|
50 | return 0; |
51 | }
|
HIHI, OK hat sich erlädigt.... Habe den Rat mit dem Kabelkreuzen vom Karl Heinz beherzigt und siehe da... Es werde 0110101! Dank!
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.