Hello All,
OK, I've been on here for hours trying to research the information, but can't find exactly what I'm looking for. Even exhausted my efforts on Google, the manual and Datasheet (for what I could interpret).
I want to make all my ports digital. I have tried the adcon1 = 15 and even Darrell's alldigital.php. It doesn't work correctly. I am trying to implement some simple code, but it doesn't behave properly. What am I doing wrong?
This code should sequence on in half second intervals and stay on at the end. I had more code, but what was happening was it was sequencing on and then resetting after the sequence. I've tried putting code that made it hold in a loop, but when the LED's sequence on and it reaches the 5 second mark, the whole thing resets.Code:;----[18F25K22 Hardware Configuration]------------------------------------------ #IF __PROCESSOR__ = "18F25K22" #DEFINE MCU_FOUND 1 #CONFIG CONFIG FOSC = INTIO67 ; Internal oscillator block CONFIG PLLCFG = OFF ; Oscillator used directly CONFIG PRICLKEN = OFF ; Primary clock can be disabled by software CONFIG FCMEN = OFF ; Fail-Safe Clock Monitor disabled CONFIG IESO = OFF ; Oscillator Switchover mode disabled CONFIG PWRTEN = OFF ; Power up timer disabled CONFIG BOREN = SBORDIS ; Brown-out Reset enabled in hardware only (SBOREN is disabled) CONFIG BORV = 190 ; VBOR set to 1.90 V nominal CONFIG WDTEN = ON ; WDT is always enabled. SWDTEN bit has no effect CONFIG WDTPS = 32768 ; 1:32768 CONFIG CCP2MX = PORTC1 ; CCP2 input/output is multiplexed with RC1 CONFIG PBADEN = OFF ; PORTB<5:0> pins are configured as digital I/O on Reset CONFIG CCP3MX = PORTB5 ; P3A/CCP3 input/output is multiplexed with RB5 CONFIG HFOFST = ON ; HFINTOSC output and ready status are not delayed by the oscillator stable status CONFIG T3CMX = PORTC0 ; T3CKI is on RC0 CONFIG P2BMX = PORTB5 ; P2B is on RB5 CONFIG MCLRE = INTMCLR ; RE3 input pin enabled; MCLR disabled CONFIG STVREN = ON ; Stack full/underflow will cause Reset CONFIG LVP = OFF ; Single-Supply ICSP disabled CONFIG XINST = OFF ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode) CONFIG DEBUG = OFF ; Disabled CONFIG CP0 = OFF ; Block 0 (000800-001FFFh) not code-protected CONFIG CP1 = OFF ; Block 1 (002000-003FFFh) not code-protected CONFIG CP2 = OFF ; Block 2 (004000-005FFFh) not code-protected CONFIG CP3 = OFF ; Block 3 (006000-007FFFh) not code-protected CONFIG CPB = OFF ; Boot block (000000-0007FFh) not code-protected CONFIG CPD = OFF ; Data EEPROM not code-protected CONFIG WRT0 = OFF ; Block 0 (000800-001FFFh) not write-protected CONFIG WRT1 = OFF ; Block 1 (002000-003FFFh) not write-protected CONFIG WRT2 = OFF ; Block 2 (004000-005FFFh) not write-protected CONFIG WRT3 = OFF ; Block 3 (006000-007FFFh) not write-protected CONFIG WRTC = OFF ; Configuration registers (300000-3000FFh) not write-protected CONFIG WRTB = OFF ; Boot Block (000000-0007FFh) not write-protected CONFIG WRTD = OFF ; Data EEPROM not write-protected CONFIG EBTR0 = OFF ; Block 0 (000800-001FFFh) not protected from table reads executed in other blocks CONFIG EBTR1 = OFF ; Block 1 (002000-003FFFh) not protected from table reads executed in other blocks CONFIG EBTR2 = OFF ; Block 2 (004000-005FFFh) not protected from table reads executed in other blocks CONFIG EBTR3 = OFF ; Block 3 (006000-007FFFh) not protected from table reads executed in other blocks CONFIG EBTRB = OFF ; Boot Block (000000-0007FFh) not protected from table reads executed in other blocks #ENDCONFIG #ENDIF ;----[Verify Configs have been specified for Selected Processor]---------------- ; Note: Only include this routine once, after all #CONFIG blocks #IFNDEF MCU_FOUND #ERROR "No CONFIGs found for [" + __PROCESSOR__ +"]" #ENDIF ' -----[ Initialization ]------------------------------------------------------- Reset: OSCCON = %01010000 ' 4MHz ADCON1 = 15 ' set to digital outputs TRISA = %00000000 ' sets pin as input (1) or output (0) TRISB = %00000001 ' sets pin as input (1) or output (0) TRISC = %10001100 ' sets pin as input (1) or output (0) PORTA = %00000000 ' sets outputs as high (1) or low (0) PORTB = %00000000 ' sets outputs as high (1) or low (0) PORTC = %00000000 ' sets outputs as high (1) or low (0) ' -----[ Variables ]------------------------------------------------------------ led1 var porta.1 ' LED 1 led2 var porta.2 ' LED 2 led3 var portb.1 ' LED 3 led4 var portb.2 ' LED 4 action: led1 = 1 pause 500 led2 = 1 pause 500 led3 = 1 pause 500 led4 = 1 pause 5000
Also, when the code goes from LED1 to LED2, LED1 turns off. The rest stay on, but LED1 always turns off.
Any thoughts? I've spent over 6 hours trying to figure this out.
Thanks,
Tony
Bookmarks