Hallo, ich mach mal einen neuen Tread auf, denn mir dem Display hat das ja nichts mehr zu tun. Ich habe mein Programm mit dem ich das DOG-M ansteuern will jetzt mal bis auf das wesentliche zusammengeschrumpft: $regfile = "usb1287.dat" $crystal = 16000000 Wdtcsr = &B00000000 'Watchdog abschalten ? Config Pinf.1 = Output Mar3: Set Pinf.1 Goto Mar3 End Wieso erzeugt das eine saubere Rechteckfolge an Pinf.1? Mir fällt einfach nichts mehr ein, der Pin wird doch anderweitig nicht genutzt. Hat vielleich jemand eine Idee? Gruß Gerd
Bei modernen AVRs toggelt das Seiten des PIN den betreffende IO-Port. Das habe ich in einem der Atmega Datenblätter gelesen. Vielleicht ist das beim usb1287 genauso.
Hallo Stefan, finde ich leider nichts genaues drüber. An selben Port könnte man ja einen JTAG anschließen, dieser Pin wird dafür aber nicht benutzt. Gruß Gerd
> finde ich leider nichts genaues drüber. Seite 72, vorletzter Abschnitt in http://www.atmel.com/dyn/resources/prod_documents/doc7593.pdf
Hallo Stefan, gefunden habe ich es, leider begreife ich es auf Grund meiner bescheidenen Englischkenntnisse nicht. Verstehe den Sinn auch nicht, ein Pin der eine Recheckfolge ausgibt, wenn er mehrmals gesetzt wird, was bringt das? Habe jetzt den ganzen Port als Ausgang gesetzt und JTAG deaktiviert, aber alles unverändert. Einen anderen Pin habe ich auch schon getestet, genau das Gleiche. Gruß Gerd
Du musst den Ausgang so setzen: Set Portf.1 Gruß Rolf
Der Sinn... muss ich mir auch was ausdenken. Vielleicht wenn du ein Rechtecksignal für ein Blinken o.ä. machen willst? Oder meinst du, warum man durch Schreiben in PIN PORT Umschalten kann? Entweder ist es einfach ein Nebeneffekt der Hardwareentwicklung, der jetzt dokumentiert und nutzbar ist oder es ist bewusst so beim Design des AVR angelegt worden. Ich müsste da auch erst nachschlagen, ob es auf einem anderen Weg möglich ist, mit nur einem ASM-Befehl ein Toggeln eines Outputpins zu bewirken. Soviel Ahnung habe ich von Assembler nicht, um das aus dem Stand zu entscheiden. Definitiv ist diese Methode die schnellste Umschaltung, die man machen kann. Zum Hintergrund: Ein Port hat drei Register - das Datenrichtugsregister (DDR), das zu lesbare /schreibbare Daten Register (PORT) und das lesbare Datenregister (PIN). Bei den neueren AVRs ist jetzt der Spezialfall erklärt, was passiert, wenn man eine logische 1 in ein Bit des eigentlich nur lesbaren PIN Registers schreibt: Dann wird das entsprechende Bit des Datenregister PORT umgeschaltet (getoggelt). Wenn du den Effekt nicht bewusst nutzen willst, ist dein Programm an und für sich an dieser Stelle "Käse" Mar3: Set Pinf.1 Goto Mar3 Besser wäre es so: SET Portf.1 ' Portf.1 = 1 DO LOOP
Mar3: Set Pinf.1 <---- SET hier, und wo ist RESET? Goto Mar3 End versuche mal mit TOGGLE.
Hallo Stefan, darf ich dich Wohltäter nennen? Ich weiß gar nicht, wie ich auf die Idee gekommen bin PINF.1 statt PORTF.1 zu benutzen. Wahrscheinlich zu lange vor dem Monitor gesessen. Ganz schön peinlich, den ganzen Tag damit verbracht. Vielen Dank! Gruß Gerd
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.