PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Polling-Verfahren



Import-Script
15.05.2003, 17:53
Aufgabe: Sie wollen nacheinander die analogen Kanäle 3 bis 5 in dem Spannungsfenster von 1,25V-2,75V wandeln. Die Ergebnisse dieser einmaligen Wandlung speichern sie im internen Speicher ab Adresse 70h ab. Der AD-Wandler arbeitet dabei im Polling-Verfahren. <BR> <BR>soweit ich noch weis, ist das Polling-Verfahren, das ständige Abfrage der Leitung? Stimmt das? <BR> <BR>ich habe auch schon das Programm geschrieben, bloß weis ich jetzt nicht, ob es so richtig ist mit dem Polling-Verfahren: <BR>INCLUDE 80515.mc <BR> <BR>start: <BR> ; Startadresse des internen RAM <BR> MOV R0,#70h <BR> <BR>loop: <BR> ; Kanal 3 <BR> SETB Mx0 <BR> SETB Mx1 <BR> CLR Mx2 <BR> ; Aufruf AD-Wandler <BR> call ad_wandler <BR> <BR> ; Kanal 4 <BR> CLR Mx0 <BR> CLR Mx1 <BR> SETB Mx2 <BR> ; Aufruf AD-Wandler <BR> call ad_wandler <BR> <BR> ; Kanal 5 <BR> SETB Mx0 <BR> CLR Mx1 <BR> SETB Mx2 <BR> ; Aufruf AD-Wandler <BR> call ad_wandler <BR> ; Endlosschleife <BR> JMP loop <BR> <BR>ad_wandler: <BR> ; fortlaufende Wandlung <BR> SETB adm <BR> ; Wandelbereich zwischen 1,25 V &#40;4&#41; und 3,75 V &#40;C&#41; <BR> MOV dapr, #0C4h <BR> ; Springen solange bis bsy den Wert null angenommen hat <BR> JB bsy, $ <BR> ; Wert in den internen RAM speichern <BR> MOV @R0, addat <BR> ; R0 um eins erhoehen <BR> INC R0 <BR> ; Ruecksprung ins Hauptprogramm <BR> RET <BR>END

Import-Script
15.05.2003, 23:49
Probiers doch aus... <BR>Wenn´s läuft ist´s richtig! <BR>... oder wo ist Dein Problem?

Import-Script
16.05.2003, 12:09
ich bin noch kein Profi in Mikrocontroller! <BR> <BR>bin am lernen! Vielleicht gibt es ja eine einfachere Form von meiner! <BR> <BR>oder jemand sagt, das kann man anders schreiben oder sonst was!

Import-Script
16.05.2003, 16:40
Hi, <BR> <BR>Generell: <BR><b>Polling</b> bedeutet permanentes Nachschauen, ob ein Ereignis stattgefunden hat. Neue Daten, irgendwelche Zustände usw. Also in deinem Fall nachschauen, ob die Wandlung schon fertig ist. <BR> <BR>Das gegenst&uuml;ck ist <b>Interrupt</b>. Dabei meldet sich die Hardware bzw. das Ereignis und fordert eine Programmunterbrechung. <BR> <BR>Veranschaulichen läßt sich das so: <BR>wenn das Telefon klingelt &#40;Interrupt&#41; unterbricht man seine Tätigkeit, sofern man nicht wichtigeres zu tun hat und beantwortet den Anruf. Polling wäre jede Minute zum telefon gehen, den Hörer abnehmen und hören, ob jemand gerade angerufen hat. <BR> <BR>Polling nimmt man also, wenn man sowiso nichts zu tun hat &#40;auf den Anruf wartet&#41; und sich stark langweilt. Interrupt ist vorzuziehen, wenn man viel zu tun hat und sich nicht gerade &uuml;bernat&uuml;rlich langweilt. Ob man in dem Moment rangeht, oder etwas später kann man im Einzelfall immer noch entscheiden. &#40;Interrupt vorr&uuml;bergehend abschalten bei Zeitkritischen Tätigkeiten&#41; <BR> <BR>Gruß <BR>Elmar