mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik serielle Daten einlesen AT90S8535


Autor: chris (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hab eine frage zum Datenblatt als Anhang,(Seite 3)
unswar will ich die seriellen Daten in ein 8535 einlesen und komme
nicht mehr weiter
ich hab die clock auf int0 und die daten leitung auf D0
wenn jetzt der interupt anfängt liest er mir doch die daten in ein
register  aber wie??

int0_handler:
in temp1,pind


und das als schleife bis der int0 weg is?

oder bin ich total auf dem Holzweg ?
für Unterstützung bin ich dankbar!

Autor: stromi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab das mal ohne interupt gemacht, allerdings mit dem alten c64 im
maschinensprache......
ich würde beim interupt  ein bit einlesen (in eine
wordvariable)einschreiben nach links schieben, test auf die frage: sind
alle bit's drin, interupt wieder frei geben .
wenn alle bits da sind: ausmaskieren--> vorzeichen und werte, asci
wandel und was sonst noch..
tschaui

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja erstmal danke für die tips genau da bin ich in etwa beim probieren
wie geht das ein bit weiter schieben
int0_handler:
rcall lcd_clear
rcall up1
mov temp,r20
rcall lcd_data
reti
up1:
  ldi  r21,8      ;8 Datenbits einlesen
up2:
        in  r23,pind    ;Datenbit einlesen
  ror  r23      ;
  ror  r22      ;
  dec  r21      ;alle Bits eingelesen?
  brne  up2      ;nein -> Schleife
  nop
  nop
  in  r23,pind    ;Datenbit einlesen
  ret

Autor: stromi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich bin schon etwas raus, aber in einem interupt, also das
clocksignal nimmt statt low  high an, ist auch nur ein mögliches bit am
datenpin zu lesen, es kommen nicht alle daten hinterher und das
clocksignal bleibt solange high.
so wie ich das sehe ist ein bit des datenstromes dann lesbar, wenn
interupt erkannt worden ist. dann sollte das clocksignal wieder low
werden und das nächst high auf dem clockpin löst dann den nächsten
interupt aus, und das nächste bit des datenstromes ist dan am datenpin
lesbar. bis dann alle bits gelesen wurden.
also kurz gesagt jedes clocksignal biete ein bit am datenpin an.


-_-_-_-_-.........  <-----------clock
 0 1 0 1 1 .........  <-----------daten
 ! ! ! ! !
 ! ! ! ! !
da wo ein ausrufezeichen ist, ist auch ein interupt
ist scho spääät
tschaui

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ja war gestern spät :-)
im datenblatt ist ja die Beschreibung und das steht (so hab ichs
verstanden wenn clock high dann 16 bit)
oder nicht?
aber wie weis ich wo welches bit ist ?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Datenblatt kann man das nicht nennen, dazu ist es zu dürftig.

Nirgends steht, mit welcher Frequenz getaktet wird und wie man auf den
Beginn eines Datensatzes synchronisiert.

Mit viel gutem Willen kann man vermuten, daß nur alle 2s ein Datensatz
gesendet wird. D.h. mit einem Timeout von <1s könnte man auf den Anfang
synchronisieren.

Ansonsten klingt das verdammt nach: Warum benutzt Du nicht einfach das
SPI im Slave-Modus ?

16 Bit sind ja 2 Byte also 2 SPI-Interrupts.


Mit 1s Timeout ist gemeint, daß wenn nicht innerhalb 1s nach dem
1.SPI-Interrupt alle restlichen Datenbytes empfangen wurden, dann wird
das SPI neu initialisiert und wartet auf den Beginn des nächsten
Datensatzes.


Peter

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.