www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Rechenzeit und Serielle-Schnittstelle


Autor: Samuel Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte Daten von der Seriellen Schnittstelle empfangen. Die 
Schnittstelle ist mit einer Baudrate von 19200 getaktet, der uC mit 
4MHz.

Ich möchte jetzt wissen wie viele Cycles ich zwischen zwei Interups 
machen kann.

Muß ich 4M/19200=208 rechen, oder 4M/2400=1666?

2400 müßte doch eigendlich richtig sein?
Der Interupt kommt doch Byte und nicht Bit weise, oder?

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist schon korrekt der Interrupt kommt Zeichenweise. Du  musst aber 1 
Startbit und 1-2 Stop-Bit mit berücksichtigen. Daher besser:
Fclk/Baudrate*Zeichenlänge (incl. Start- und Stopbits)
zb.
4000000/19200*(1+8+1)=2083,33 (1 Start 8 Daten 1 Stop-Bit)

Autor: Samuel Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank für die Antwort. Wenn ich das richtig verstehen, kann ich 
den uC 2000 Cyclen zwischen zwei Intrrupts arbeiten lassen.

;---- Was ich versuche -- BEGIN --
Ich versuche SMS vom Handy zulesen. Weil ich nur 256Byte SRAM habe, 
möchte ich die Daten quasi in RealTime ;-) in Hex wandeln und nur als 
Hex in den SRAM speichern. Die habe mir eine SMS in den Flash 
geschrieben, genauso wie die Daten vom Handy kommen. Und wenn ich das 
Programm im AVR Studio laufen lassen, tut es 1a. Nur in "echt" nicht. Es 
schreibt mir die TelefonNr brav in den SRAM, nur bei der PDU->Hex 
Wandlung hängt er sich auf.
;--- END

Ich habe beim Debuggen die Cyclen mitzählen lassen, und das ist dabei 
errausgekommen:

Worst Case Fall:
Interrupt
1. Durchlauf:   75 Cyclen[18,75uSek]
Interrupt
2. Durchlauf: 1200 Cylcen[300,0uSek]
Interrupt
...

Eigendlich müßte er das Packen oder habe ich noch immer einen 
Denkfehler?

Autor: Samuel Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat sich erledigt, habe mein Prog nochmal genau unter die Lupe genommen, 
und kleine Unregelmäßigkeiten beseitigt.
Und siehe da es tut soweit.

Vielen Dank

MfG

Samuel Schmidt

Autor: Dani (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was genau versteht man unter einem Cycle ?

Danke
Dani

Autor: Samuel Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dani

RE: Was genau versteht man unter einem Cycle ?

Jeder (Assembler)Befehl braucht eine bestimmte Anzahl von Cyclen.
Die Anzahl der benötigten Cyclen steht bei jedem Befehl im Instruction 
Set (zumin. bei den AVRs).
Dann gibt es noch einen Zusammenhang zwischen Hardwaretakt und Frequenz.

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.