mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT89S8252 5sek warten


Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ist es möglich den AT89S8252 so zu programmieren dass er zwischen dem 
einen Befehl der die Ports anschaltet und dem der die Ports wieder 
ausschaltet etwa 5 sek wartet?. Also das z.B. am Pin 2.6 für 5sek eine 
Spannung von +5V anliegt?

Mit Dank im Vorraus, Lars

Autor: Hansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey genau dass will ich auch mal wissen..
wer erklärt uns mal wie das konkret geht.
software mäßig isses ja kein problem, aber wer bitte schön kommt denn 
mit dem hardware timer klar und kann mir das mal erklären.

danke

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was meinst du mit Software mäßig ist es ja kein problem, kannst du mir 
erklären wie ich es machen kann?
MfG Lars

Autor: Hansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi lars,

also abhängig von deiner Taktfrequenz also dem Systemtakt vom Oszillator 
hast du mit diesem Code eine Verzögerung

du greifst auf den 16bit Zähler zurück und kannst den Controller 6535 
mal lehr eine Schleife abarbeiten lassen. jeder Durchlauf der Schleife 
umfasst 4 Taktzyklen des Controllers, daraus resultierend die 
Periodenzeit multipliziert mit 65535 dann hast du deine Pausenzeit,


;**********Zeitfunktion****************
;**********generated by hansen*********

ldi zh,high(65535) ; High-Byte auf höchsten Speicherbereich setzen
ldi zl,low(65535) ; Low-Byte      "                            "
Zaehler:              ; Beginn der Zählerschleife
sbiw zl,1               ;subtrahiert den Wert 1 von ZL
brne Zaehler       ;Springe solange zu Zaehler bis ZL=ZH
                            ;somit läuft das ding 65535 mal durch

;**************************************************
Nachteil solch eines Software-Zählers ist,dass Du während dieser 
Pausenzeit dem Controller ausser seinen Interrupts nix machen lassen 
kannst. es sei denn du setzt ne Eingangsportabfrage in die 
Zählerschleife um in diese Zeifunktion eingreifen zu können. Noch besser 
wie ich dass hier dir gezeigt habe ist der Hardware - Timer, viel besser 
und vorallem durch den Timer-Interrupt bist du total flexibel in deinem 
Programm.

wenn Du noch weitere Fragen hast, dann nix wie her damit, hab mich seit 
nem Monat mit nem AVR rumgeplagt hab jetzt e bissele ahnung von der 
sache.

tschö,
hansen

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi
der 89s8252 ist doch gar kein AVR- dein Asemblerproramm wird der wohl 
nicht nehmen - oder irre ich mich da????

Auf http://www.erikbuchmann.de gibts einen Codegenerator - der macht dir 
auch PAusen auf µsec genau....

mfg
Christian

Autor: ERDI - Soft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wie Hansen schon gesagt hat, sollte man dafür den Timer benutzen.
Natürlich geht das auch Softwaremäßig, allerdings ist dann der ganze 
Controller blockiert, während der Zähler von alleine läuft. Wenn er 
überläuft, dann gibts nen Interrupt.

Hab leider keine Beispielroutine hier. Könnte ich dir frühestens morgen 
anhängen. Kannst aber auch unter

http://www.batronix.com

schauen. Die Programmiersoftware hat da ein Beispiel intus, wie der 
Timer zu programmieren ist, um einen 1s-Takt zu generieren.


Bis denn, ERDI - Soft.

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die vielen Antworten, hab jetzt erstmal das problem 
Softwaremäßig gelößt, wenigstens vorrübergehend.
MfG Lars

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.