hallo
Ich habe der Pic 16f88 mit Assembler programmiert, ich habe eine
Test-Platine mit 2 LED zusammengebaut, und ich möchte dass die zwei LED
mit verschidene Frequenzen Bliken lassen, d.h ich muss der interne
Oscillator umschalten, aber das klappt nicht, hat Jamend ein Idee?
#include <P16F88.inc>
LED equ 1
LED1 equ 0
Wait1 equ 0x25
Wait2 equ 0x26
Wait3 equ 0x27
Wait4 equ 0x28
org 0x0000
;__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF &
_WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF &
_PWRTE_ON & _WDT_OFF & _EXTRC_IO
;__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
bsf STATUS, RP0
bcf OSCTUNE, 0x00
;bsf OSCCON, 1110110
MainInit
bsf STATUS, RP0
bsf OSCCON, 1110110 ;Einstellung der erste Frequenz
movlw 0x00
movwf ANSEL
bcf TRISA, LED
bcf STATUS, RP0 ;Bank 0
bsf PORTA, LED ;LED leuchtet
call Warten ;zum Unterprogramm;
bcf PORTA, LED ;LED leuchtet nicht
call Warten ;zum Unterprogramm;
bsf STATUS, RP0
bsf OSCCON, 0000111 ;Einstellung der zweite Frequenz
bcf TRISA, LED1
bcf STATUS, RP0 ;Bank 0
bsf PORTA, LED1 ;LED leuchtet
call Warten1 ;zum Unterprogramm;
bcf PORTA, LED1 ;LED leuchtet nicht
call Warten1 ;zum Unterprogramm;
goto MainInit
Warten
;Wartezeit initialisierung
movlw 0x10
movwf Wait2
loop2
movlw 0x10 ;Wartezeit initialisierung
movwf Wait1
loop
decfsz Wait1,1
goto loop
decfsz Wait2,1
goto loop2
retlw .0
Warten1
movlw 0x10
movwf Wait3
loop3
movlw 0x10 ;Wartezeit initialisierung
movwf Wait4
loop4
decfsz Wait3,1
goto loop
decfsz Wait4,1
goto loop2
retlw .0
end