mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90USB1287 und Bascom- unverständliches Verhalten


Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> finde ich leider nichts genaues drüber.

Seite 72, vorletzter Abschnitt in 
http://www.atmel.com/dyn/resources/prod_documents/...

Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rolf Im forum (for_ro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst den Ausgang so setzen:
Set Portf.1

Gruß

Rolf

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Lektrikman1001 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mar3:
Set Pinf.1               <---- SET hier, und wo ist RESET?
Goto Mar3
End


versuche mal mit TOGGLE.

Autor: Gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.