Hi,
ich versuche mich gerade in die Timer und die Interrupts eines
Mikrocontrollers einzuarbeiten.
Mein erstes Ziel ist es, dass nach ca. 5 sekunden ein Bit (P0.2)
invertiert wird.
Wenn es 1 ist soll es danach 0 sein und andersrum.
Leider scheiter ich schon bei diesem wohl kleinen Code.
Verwenden tue ich einen 80535 mit 12 MHz.
Als Timer verwende ich den Timer0.
Momentan läuft er im Modus 01 (16Bit Timer).
Bei jedem Overflow-Interrupt wird das Bit P0.2 invertiert.
Das funktioniert auch ganz gut. Nur ich bekomme es nicht hin (bzw. ich
weiß nicht wie) ich das mit den 5s mache.
Beim Timer0 kann man ja den Vorteiler nicht einstellen?!
Oder gibt es dafür eine andere Möglichkeit?
Ich programmieren NUR in Assembler.
Mein Code sieht bis jetzt so aus:
1 | mov p0,#0
|
2 |
|
3 | ljmp main
|
4 | org 0Bh
|
5 | call timerfuntkion
|
6 | reti
|
7 |
|
8 | main:
|
9 | mov 040h, #0
|
10 | mov TMod, #01
|
11 | setb IE.1
|
12 | setb EA
|
13 | setb TCon.4
|
14 | w: sjmp w
|
15 |
|
16 | timerfuntkion:
|
17 | cpl p0.2
|
18 | ret
|
19 | end
|
Ich hoffe ihr könnt mir da weiterhelfen.
Lg
Uwe