Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Hostpin abfragen Kategorie: Progr. Assembler, TaskingTools, OS (von André H. - 6.09.2004 9:56)
Als Antwort auf Hostpin abfragen von Thomas - 4.09.2004 17:38
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT_V2, OSOPT V3.0
Hallo Thomas,

> wie kann ich in Assembler den Hostpin abfragen? Ich möchte so etwas wie einen eigenen Hostmode
> programmieren, d.h. ich möchte erkennen, wenn der User auf den Hostmodetaster des Applicationboards
> drückt und dann einen bestimmten Programmteil ausführen.
> Wenn ich das richtig verstanden habe wird der Hostpin (P3.4?) beim Drücken auf den Hosttaster auf 0
> gesetzt. Daher habe ich einmal folgenden Code implementiert.
>
>  ...
>         cmp   P3.4,#0
>         jmpr  cc_EQ,wait
> ...

>
> Das Programm bleibt jedoch immer in der "wait"-Schleife auch wenn man den Hosttaster gedrückt hält.
> Woran kann das liegen, bzw. wie kann man den Hosttaster in Assembler richtig abfragen. Ich habe im
> disassemblierten OS komischerweise keine Stelle gefunden, die mit P3.4 arbeitet und habe die Annahme,
> dass das der Hostpin sei nur aus einem Post von Andre über das neue OS_OPT V.3. Ist P3.4 überhaupt
> der Pin der beim Drücken des Hosttasters auf 0 gesetzt wird?

Der Host-Pin wird beim Drücken des Host-Tasters auf Low gesetzt. Das ist richtig.
Der Grund, warum Du im disasm. OS keine Abfrage von P3.4 gefunden hast, ist der,
daÃ? einzelne I/O-Ports immer nach derren Sonderfunktion benannt sind und auch so in ASM
üblicherweise angesprochen werden müssen.
Die Bezeichnung von P3.4 ist "T3EUD". (siehe auch Manual zum C164CI)

Das zweite Problem bei Deinem Code ist, daÃ? Du versuchst einen Bit-Port mit
durch einen Word-Vergleich mit einer Zahl zu vergleichen.
Normalerweise müsste der Compiler hier meckern. Aber da Du einen Kommandozeilencompiler
und nicht die Tasking-Tools verwendest, könnte es sein, da� dieser darüber hinwegsieht
und aus cmp P3.4,#0 einfach cmp P3,#0 macht.
Somit würde der komplette Port 3 verglichen. Und, da� bei diesem jemals alle Pins low sind,
ist sehr unwahrscheinlich. ;-)

Was Du benötigst, ist eine Anweisung, bei der Du in Abhängigkeit eines einzelnen Bits
springen kannst.
das wären hier die Anweisungen JB und JNB für
"Springe, wenn Bit gesetzt" ist bzw. "Springe, wenn Bit nicht gesetzt ist".

In Deinem Fall also:
...
        JNB     T3EUD, wait
...


MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Hostpin abfragen (von Thomas - 9.09.2004 22:00)
    Re: Hostpin abfragen (von André H. - 13.09.2004 12:43)