Hallo, ich programmier mit einem ATtiny25. Jetzt habe ich doch noch einen Pin freischaufeln können und möchte dort eine nur einseitige RS232 Verbindung vom ATtiny zum PC mit 19200 Baud machen. Ich will mit Hyperterminal mitlesen können was der Attiny so grade macht. 1. Wie kann ich in C Meßwerte über RS232 ausgeben? 2. Wie kann ich die Baudrate einstellen. 3. Ich habe keinen Quarz angeschlossen, ist die Taktrate überhaupt stabil genug so?
Bastelphilipp schrieb: > 1. Wie kann ich in C Meßwerte über RS232 ausgeben? Tutorial, Datenblatt > 2. Wie kann ich die Baudrate einstellen. Tutorial, Datenblatt > 3. Ich habe keinen Quarz angeschlossen, ist die Taktrate überhaupt > stabil genug so? Nur wenn du Glück hast und darauf baust, daß es so bleibt..
Bitteschön: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART Hier sollten all deine Fragen beantwortet werden. Mit Quarz wäre die Übertragung sicherer, aber fürs Debugging wird die interne Taktquelle schon ausreichen.
Da der Tiny25 keine UART hat, sondern nur eine USI musst du dir hier selber helfen. Entweder die USI so umpfriemeln, dass sie als UART funktioniert oder aber eine Software UART implementieren. Da du wahrscheinlich den USI Pin sowieso nicht frei haben wirst, wird es wohl auf eine Software UART hinauslaufen. Code dafür findet sich in der Codesammlung.
Ich hatte gehofft, das es 1. eine set_baudrate(unsigned long int); 2. eine putchar(unsigned char); Routine geben würde. > Da du wahrscheinlich den USI Pin sowieso nicht frei haben wirst, wird es > wohl auf eine Software UART hinauslaufen. Welches ist der USI-Pin? Im Pinout des ATtiny auf Seite 2 steht nix von USI > Code dafür findet sich in der Codesammlung. Wo genau? Genausogut könntest du sagen: Info's über Mikrocontroller finden sich in jeder Stadtbibliothek ;-)
Bastelphilipp schrieb: > Ich hatte gehofft, das es > 1. eine set_baudrate(unsigned long int); > 2. eine putchar(unsigned char); Routine geben würde. :-) Ich hoffe auch viel. Aber Hoffnungen sind manchmal trügerisch >> Da du wahrscheinlich den USI Pin sowieso nicht frei haben wirst, wird es >> wohl auf eine Software UART hinauslaufen. > Welches ist der USI-Pin? Im Pinout des ATtiny auf Seite 2 steht nix von > USI Datenblatt, Abschnitt über USI >> Code dafür findet sich in der Codesammlung. > Wo genau? Genausogut könntest du sagen: Info's über Mikrocontroller > finden sich in jeder Stadtbibliothek ;-) Und genauso wie jede Stadtbibliothek hat auch die Codesammlung eine Suchfunktion. Was hindert dich daran, dort "Software UART" einzugeben?
Hallo, ich habe früher mal diese Rotine in Assembler programmiert. Dies ist sozusagen meine eigene Soft_UART-Routine
1 | RS232_putchar: |
2 | clc ;Startbit |
3 | PUSH Loopcounter |
4 | ldi Loopcounter,10 ;Startbit + 8 bit + Stopbit |
5 | Send_loop: |
6 | brcs nicht_null_1 |
7 | cbi PORTB,RS232_Port |
8 | nicht_null_1: |
9 | brcc nicht_eins_1 |
10 | sbi PORTB,RS232_Port |
11 | nicht_eins_1: |
12 | PUSH Loopcounter |
13 | ldi Loopcounter,18 ;18 für 115200 Baud |
14 | wait_loop: |
15 | dec Loopcounter |
16 | brne wait_loop |
17 | POP Loopcounter |
18 | sec |
19 | ror ACC |
20 | dec Loopcounter |
21 | brne Send_loop |
22 | POP Loopcounter |
23 | ret |
Ein Zeichen wird über RS232 mit 115200 Baud ausgeben. Das zu übergebende Zeichen ist in der Variablen ACC In der Routine ist eine Variable Loopcounter verwendet. Wie könnte ich das in C mit dem Inlineassembler einbinden?
Karl heinz Buchegger schrieb: > Und genauso wie jede Stadtbibliothek hat auch die Codesammlung eine > Suchfunktion. Was hindert dich daran, dort "Software UART" einzugeben? So, das habe ich getan und habe diese Software UART vom peter dannegger gefunden. Diese scheint aber für irgendein ATmega-Modell zu sein, dies sollte eigentlich + die Info welcher Compiler, welche IDE, welche Optimierungs-Optionen eingeschaltet werden, etc. im Quelltext enthalten sein. Bei mir(GCC + AVRstudio4) gibt's nur 1000 Fehlermeldungen...
Bastelphilipp schrieb: > Karl heinz Buchegger schrieb: >> Und genauso wie jede Stadtbibliothek hat auch die Codesammlung eine >> Suchfunktion. Was hindert dich daran, dort "Software UART" einzugeben? > > So, das habe ich getan und habe diese Software UART vom peter dannegger > gefunden. > > Diese scheint aber für irgendein ATmega-Modell zu sein, dies sollte > eigentlich + die Info welcher Compiler, Compiler ist sicherlich der WinAvr, wenn auch eine etwas ältere Version. Das wird sich aber nicht um viel reißen > welche IDE, AVR-Studio (ziemlich sicher. >80% des Codes hier stammt aus dem Gespann AVR-Studio / WinAVR) > welche > Optimierungs-Optionen eingeschaltet werden ist praktisch auch immer gleich: -Os > Bei mir(GCC + AVRstudio4) gibt's nur 1000 Fehlermeldungen... Dann fang mit der ersten an. Was ist das Prinzip des Codes? Welche Hardware vom Mega braucht er? Hast du die Hardware oder etwas ähnliches (zb Timer) auf deinem Tiny? Wenn ja, wie ist die Konfiguration beim Mega, wie muss das am Tiny aussehen? Ist alles Standard-Arbeit bei der Code Übernahme auf einen anderen Prozessor.
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.