Forum: Compiler & IDEs Zeiteinstellen unter c für den SDCC


von Chris (Gast)


Lesenswert?

Hi Leute...

ich habe da eine Frage an euch!
Die Frage lautet wie ich in C eine Zeitverzögerung hinbekomme
um die gleiche Baud-Geschwindigkeit wie mein Controller zu bekommen!

Die Funktion sleep funktioniert unter SDCC nicht!!

Gruß chris

von Rufus T. Firefly (Gast)


Lesenswert?

Was hast Du vor? Man braucht keine Zeitverzögerung, um irgendwelche
Dinge mit Baudraten zu erledigen; das macht die Hardware der seriellen
Schnittstelle schon selber.

von Chris (Gast)


Lesenswert?

Ich möchte dies ja ohne Hilfsmittel machen! Also alles selbst!!

gruß Chris

von Rufus T. Firefly (Gast)


Lesenswert?

Hä?

Schilder mal etwas ausführlicher, was Du vorhast.
Willst Du eine serielle Schnittstelle in Software emulieren? Willst Du
selbst qua Bitwackeln (Morsetaster) eine serielle Schnittstelle oder
gar einen Microcontroller emulieren? Ist der Kaffee alle?

von Chris (Gast)


Lesenswert?

hi leute...

ich habe die aufgabe ein c-Programm zu schreiben, was mit einer
seriellen Schnittstelle verbunden ist. Besser gesagt eine serielle
Schnittstelle mit eingebuden werden soll ohne jegliche Hilfe durch ein
Special Funktion Register oder ähnliches! Einfach nur über die serielle
schnittstelle P3.1! Dazu brauche ich die gleiche Baudrate wie die auf
meinem Micro Controller!

Gruß chris

von Rufus T. Firefly (Gast)


Lesenswert?

Du sollst also wirklich eine serielle Schnittstelle in Software
emulieren. Oder auch nicht? "Einfach nur über die serielle
schnittstelle P3.1!" - Das ist keine serielle Schnittstelle, sondern
ein Portpin.

Was magst Du mit " Dazu brauche ich die gleiche Baudrate wie die auf
meinem Micro Controller!" meinen? Wer soll wo wann irgendwelche
Baudraten erzeugen?

von Chris (Gast)


Lesenswert?

Um etwas sereiell durchführen zu können, sprich daten auszutauschen,
brauchen Sender und Empfänger die gleiche Geschwindigkeit bzw. die
gleiche Baudrate!

In meinem Fall kann über den Port 3.1 daten ausgetauscht werden!

Gruß chris

von Rufus T. Firefly (Gast)


Lesenswert?

Du hast offensichtlich meine Frage nicht verstanden.
Hast Du Deine Aufgabenstellung wirklich richtig verstanden?
Womit soll denn der von Dir zu programmierende Controller verbunden
werden?



..................... <- eine Handvoll Satzzeichen, die Du anstelle der
! verwenden solltest.

von OldBug (Gast)


Lesenswert?


von Rufus T. Firefly (Gast)


Lesenswert?

Danke, Oldbug. Das ist so ähnlich wie meine K&R-Fußnote.

von Andreas (Gast)


Lesenswert?

P3.1 ist TxD beim 8051. P3.0 dementsprechend RxD.

Der Satz:
"Einfach nur über die serielle schnittstelle P3.1
läßt darauf schliessen, dass Du über diese beiden Datenaustauschen
sollst. Dies geht aber nicht ohne in die entsprechenden Register die
Baudrate, Daten usw. zu schreiben.

Falls du wirklich alles händisch machen sollst, musst Du über einen
Timer in den entsprechenden Zeiten, entsprechend den Bits deiner Daten,
den Portpin setzen. Das wäre aber eine Arbeit für einen der Vater und
Mutter erschlagen hat.

Ich meine von Atmel gibt es sowas. Da wird für den AT90S1200 über die
Pins eine serielle nachgebildet. Aber nur weil der keine hat und nicht
weil er eine hat und wir das ganze alles selber machen wollen.
Da es ein ganz anderer Typ ist wirst Du das Programm aber nicht nehmen
können. Vielleicht aber als Anregung.
Allerdings habe ich, wie bereits geschrieben, meine Zweifel, dass das
so laufen soll.

Ein bischen genauer hätte die Erklärung schon sein können. Vielleicht
siehst Du Dir erst einmal das Datenblatt des 8051 an.

Grüße
Andreas

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.