Forum: Mikrocontroller und Digitale Elektronik Rechenzeit und Serielle-Schnittstelle


von Samuel Schmidt (Gast)


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?

von mikki merten (Gast)


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)

von Samuel Schmidt (Gast)


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?

von Samuel Schmidt (Gast)


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

von Dani (Gast)


Lesenswert?

Was genau versteht man unter einem Cycle ?

Danke
Dani

von Samuel Schmidt (Gast)


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.

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
Noch kein Account? Hier anmelden.