Hallo, ich möchte mit einem Tiny25 eine NEC-Protocol FB auslesen und wollte zum Debuggen Daten per UART an den PC senden. Den UART wollte ich über das USI-Modul laufen lassen und habe frei nach der Atmel AppNote dafür ein Programm geschrieben. Drücke ich auf der FB eine Taste, kommen auch 68 Bytes (68 Flankenwechsel für ein FB kommando http://wiki.altium.com/display/ADOH/NEC+Infrared+Transmission+Protocol) am PC an, es stimmen jedoch nur die ersten zwei und ein paar letzte Bytes mit den erwarteten Werten überein. Also habe ich nachgeforscht und bin soweit gekommen, dass selbst wenn ich direkt ins UART/USI Ausgaberegister einen Wert schreibe, dieser falsch am PC ankommt (jedoch nur wenn zwichendurch die PCINT benützt wurde). Probehalber lasse ich per Timerinterrupt Daten in den Puffer schreiben und alles kommt richtig an. Auch habe ich verschiedene serielle Schnittstellen probiert und alle liefern das gleiche Ergebnis. Da ich nach 2 Tagen immer noch keine Lösung sehe/einen Fehler finde, möchte ich nun euch um Hilfe bitten. Der Code ist im Anhang. Danke für Hilfe. PS: Ich weiß das es Software UART gibt und ein fertiges FB-Tool, möchte ich jedoch nicht nutzen.
OK, ich glaube der Tiny is kaputt, ich habe jetzt einfach mal die Funktion der Timer überprüfen wollen und bei Folgendem Code kommt das erste Bild raus:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
Lass ich jetzt in der Timer ISR auch tem2 auf den Stack, kommt das zweite Bild raus. Übersehe ich irgend etwas, oder macht der Tiny wirklich groben mist?!
Gast
#2598786
Hi >Lass ich jetzt in der Timer ISR auch tem2 auf den Stack, kommt das >zweite Bild raus. Übersehe ich irgend etwas, oder macht der Tiny >wirklich groben mist?! Nö, den machst du. Du hast zwei Returns in deiner ISR. und bei beiden wird unterschiedlich 'gepopt'. Mach einen Aussprungpunkt in deiner ISR und dann klappt das auch. Den Pin kannst du übrigens mit out PINB, 1<<PB2 viel einfacher ohne Abfrage tooglen. MfG Spess
Ach F***, es sind immer diese blöden Sachen die einen dann an den rand der Verzweiflung bringen. Dankeschön für den freundlichen Hinweis. Kann der Tiny25 schon toggeln??? Dachte der wäre noch von der alten Generation die das noch nicht können.
Gast
#2598888
Hi
>Kann der Tiny25 schon toggeln???
Ja.
MfG Spess
Gast
#2598894
Hi Da habe ich wohl vergessen einen Beitrag abzuschicken: out PINB, 1<<PB2 ist natürlich Unsinn -> sbi PINB,PB2 MfG Spess
War mir schon klar, dass du SBI gemeint hast, ich hatte ja extra im Datenblatt gesucht ob er Toggeln kann (man is ja faul wann immer es geht ;-) nur habe ich auf die schnelle nix gefunden gehabt und bin dementsprechend dann den umständlichen Weg gegangen. Würde das ver*** AVR Studio nicht dauernd abstürzen wäre ich wahrscheinlich auch schon weiter...
Gast
#2598980
Hi >Würde das ver*** AVR Studio nicht dauernd abstürzen wäre ich >wahrscheinlich auch schon weiter... Welches hast du denn? Für Assembler lohnt sich das 5er Studio nicht. MfG Spess
Ne, is das 4.19. Immer wenn ich es starte läuft es. Öffne ich ein Projekt ist zu 95% der TaskManager gefragt. Läuft das Projekt und ich will paar Einstellungen im Simulator machen ist auch Feierabend. Ich habs jetzt gerade noch mal neu installiert (dürfte jetzt die dritte sein). Mal schauen obs jetzt besser ist.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

