Hallo, mit einem Atmega 162 generiere ich ein DDS Signal in Abhängigkeit von einem externen Signal, das über ICP gemessen wird. Nun sollte bei Ausbleiben des externen Signales die Generierung des DDS Signales unterbrochen werden und eine ERROR LED angehen.(von PA0) Im STK 500 funktioniert das alles bestens. Wenn das DDS aus ist ist im Oszi auch eine 0 Linie. Auf dem Steckbrett aufgebaut bekomme ich allerdings zwar die ERROR LED an, aber irgendein komisches Signal mit der Frequenz des vorherigen Signales läuft weiter. (SteckbrettDDS_02.png, DDS_02.png.) Nach einem RESET ohne externes Signal bekomme ich dann auch eine Null-Linie. Ich habe die Schaltung, die Oszibilder und den Code angehängt, da ich alles mir Mögliche ausprobiert habe, den Fehler aber nicht gefunden habe. Vielleicht kennt jemand das Phänomen oder hat eine Idee , woran es liegen könnte. Vielen Dank Thomas
Das Problem liegt wie zu erwarten in der Software. Wenn man per Datenrichtungsregister den Ausgang zum R2R auf Eingang umschaltet, werden dann immer noch die internen Pullups geschaltet. Es kommt also noch ein Schwaches Signal an.
@ Ulrich danke für die Antwort. Aber weswegen passiert das nicht innerhalb des STK 500? Bestünde dann die Lösung darin statt des Datenrichtungsregisters alle PORTB Pins auf 0 zu setzen? Gruß Thomas
Der Fehler sollte auch beim STK500 auftreten, es sei denn die Hardware ist da etwas anders aufgebaut (z.B. R5 nach VCC statt nach GND). Es hilft nichts die Portpins einmal auf 0 zu setzen - so wie ich es gesehen habe läuft die DDS Routine ja weiter. Da müßte man schon zusätzlich die Frequenz auf 0 setzen und die Phase auch. Einfacher wäre ein extra Flag, das in der DDS routine abgefragt wird.
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.