Zeiteinstellen unter c für den SDCC

Gast #180347
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.
Gast #180349
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?
Gast #180350
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
Gast #180351
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?
Gast #180352
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
Gast #180353
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.
Gast #180356
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.