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?
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)
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?
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
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.