µ-Controller Programme |
Rufa
Foren Gott
Dabei seit: 23.01.2005
Beiträge: 3.126
Herkunft: Aus mamas bauch
Level: 54 [?]
Erfahrungspunkte: 22.048.481
Nächster Level: 22.308.442
|
|
Assembler:
sclk equ P1.2
neincs equ P1.1
dout equ P1.0
org 0
main:
acall messung
mov P0,a
mov P2,a
ajmp main
messung
clr sclk
setb neincs
clr neincs
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov R7,#8
loop:
setb sclk
clr sclk
mov c,dout
RLC a
djnz R7,loop
setb neincs
ret
end
__________________ and everybody say...Yatta!
4K.MARIO93 : LEAVE ME ARE 4K PLAYER!!
|
|
10.06.2009 14:06 |
|
|
Rufa
Foren Gott
Dabei seit: 23.01.2005
Beiträge: 3.126
Herkunft: Aus mamas bauch
Level: 54 [?]
Erfahrungspunkte: 22.048.481
Nächster Level: 22.308.442
Themenstarter
|
|
PWM Steuerung:
;====================================================================
;====PWM Steuerung =====
;====Timer 0 =====
;====================================================================
zaehler equ R2
t_wert equ 0B2h
t_wert2 equ 0
t_wert3 equ 0 ;78 µSekunden
sollwert equ 100
org 0h
ljmp main
;======Einsprungadresse des Timer 0 Interruptsorg====================
org 0bh
ljmp irq_Timer0
ORG 1Bh
ljmp IRQ_TIMER1
;====================================================================
;Initialisierung von Timer/Interrupts
;====================================================================
init: clr tr0 ;Timer 0 vorsichtshalber stoppen
clr tr1
;Tmod ist nicht einzel adressierbar!
anl tmod,#00000000b ;Timer 0 im
orl tmod,#00010010b ;Autorelodmodus
mov p0, #11111111b
mov r7,#sollwert
;Timer Werte
mov TH0,#t_wert ;Reload-Wert //78 µSekunden
mov TL0,#t_wert ;" "
mov TH1,#t_wert2 ;Reload-Wert //78 µSekunden
mov TL1,#t_wert3
;======Interruptsfreigabe============================================
setb ea ;generelle Interruptfreigabe
setb et0 ;Timer 0 Interrupt freigabe
setb et1
setb tr0 ;Timer 0 start
setb tr1
mov zaehler,#255 ;Index Schleife
ret
;====================================================================
main: acall init ;Initialisierung aufrufen
loop: ljmp loop ;ewige Schleife
;======Timerinterrupt================================================
irq_Timer0: inc zaehler
mov a,zaehler
jnz nichnull
anl p0,#11111110b ;Timer 0 im
orl p0,#00000001b ;Autorelodmodus
ajmp Return
nichnull: CJNE a,7,Return
mov P0,#0
Return: reti
IRQ_TIMER1: clr TR1 ; Zähler anhalten
mov TL1,#t_wert2 ; Zählerwert nachladen
mov TH1,#t_wert3
setb TR1
djnz r7,weiter
mov r7, #sollwert
weiter: reti
;====================================================================
end ;ENDEEEEEEEEEEEEEEEEEEEE
__________________ and everybody say...Yatta!
4K.MARIO93 : LEAVE ME ARE 4K PLAYER!!
|
|
10.06.2009 14:07 |
|
|
Rufa
Foren Gott
Dabei seit: 23.01.2005
Beiträge: 3.126
Herkunft: Aus mamas bauch
Level: 54 [?]
Erfahrungspunkte: 22.048.481
Nächster Level: 22.308.442
Themenstarter
|
|
;====================================================================
;====PWM Steuerung =====
;====Timer 0 =====
;====================================================================
zaehler equ R2
t_wert equ 0B2h ;78 µSekunden
sollwert equ 40
org 0h
ljmp main
;======Einsprungadresse des Timer 0 Interruptsorg====================
org 0bh
ljmp irq_Timer0
;====================================================================
;Initialisierung von Timer/Interrupts
;====================================================================
init: clr tr0 ;Timer 0 vorsichtshalber stoppen
;Tmod ist nicht einzel adressierbar!
anl tmod,#11110000b ;Timer 0 im
orl tmod,#00000010b ;Autorelodmodus
;Timer Werte
mov TH0,#t_wert ;Reload-Wert //78 µSekunden
mov TL0,#t_wert ;" "
;======Interruptsfreigabe============================================
setb ea ;generelle Interruptfreigabe
setb et0 ;Timer 0 Interrupt freigabe
setb tr0 ;Timer 0 start
mov zaehler,#255 ;Index Schleife
ret
;====================================================================
main: acall init ;Initialisierung aufrufen
loop: ljmp loop ;ewige Schleife
;======Timerinterrupt================================================
irq_Timer0: inc zaehler
mov a,zaehler
jnz nichnull
mov P0,#255
ajmp Return
nichnull: CJNE a,#sollwert,Return
mov P0,#0
Return: reti
;====================================================================
end ;ENDEEEEEEEEEEEEEEEEEEEE
__________________ and everybody say...Yatta!
4K.MARIO93 : LEAVE ME ARE 4K PLAYER!!
|
|
10.06.2009 14:21 |
|
|
|