Greetings all,
I purchased PBP3 a few months ago and have been able to write a few programs on my own. I have been using Microcode Studio to compile and a Pickit 4 to transfer the HEX files to the MCUs.
However, this time i'm facing an issue that i'm not being able to understand.
I already searched the forum but could not find a solution.
Currently I'm checking some of the amazing examples of Mr. Darrel Taylor. I loaded a 16F88 MCU with the MIBAM example but I cannot get any LEDs to light up.
I added an on/off startup LED indication to test the programming and that LED works...but not the scan effect from the MIBAM code.
Here's the code i'm using:
Can anyone help troubleshoot this issue?Code:#CONFIG __config _CONFIG1, _WDT_OFF & _FOSC_INTOSCIO & _MCLRE_OFF & _CP_OFF & _LVP_OFF #ENDCONFIG '***************************************************************************** 'CONFIGURATION 'PIE1=0 'PIE2=0 'PCON=%11111111 'EECON1=0 CCP1CON=0 ' Disable CCP Module CVRCON=0 CMCON=7 ' analog comparators off OPTION_REG.7=1 ' Disable Pull-Ups OSCTUNE=%00000000 OSCCON=%01111000 '16f88 - 8Mhz TRISA = %00000000 TRISB = %00000000 DEFINE OSC 8 '***************************************************************************** ;____[ For 12F/16F only - Interrupt Context save locations]_________________ wsave var byte $20 SYSTEM ' location for W if in bank0 ;wsave var byte $70 SYSTEM ' Alternate save location for W ' if using $70, comment out wsave1-3 ' --- IF any of these next three lines cause an error ?? ------------------- ' Comment them out to fix the problem ---- ' -- The chip being used determines which variables are needed ------------- wsave1 VAR BYTE $A0 SYSTEM ' location for W if in bank1 wsave2 VAR BYTE $120 SYSTEM ' location for W if in bank2 wsave3 VAR BYTE $1A0 SYSTEM ' location for W if in bank3 '---DO NOT change these----------------------------------------------------- ssave VAR BYTE BANK0 SYSTEM ' location for STATUS register psave VAR BYTE BANK0 SYSTEM ' location for PCLATH register ' -------------------------------------------------------------------------- disable debug ;--------------------------------------------------------------------------- '***************************************************************************** 'VARiables TIM1 VAR WORD ' TIM2 VAR WORD ' TIM3 VAR WORD ' TIM4 VAR WORD DIRLED VAR BYTE CNT VAR WORD KM VAR WORD 'POWER-ON COUNTER LINE1 CON $80 '***************************************************************************** 'PORTS & PINS A2 VAR PORTA.2 'OUT LED b1 VAR PORTb.1 'OUT LED '***************************************************************************** ;----[ MIBAM Setup ]-------------------------------------------------------- 'BAM_FREQ CON 100 ; Desired Refresh rate Limit ;ScopeSync VAR PORTB.0 ; if declared, generates sync for OScope DEFINE BAM_INFO 1 ; use to display MIBAM results BAM_COUNT CON 3 ; How many BAM Pins are used? INCLUDE "MIBAM.pbp" ; Mirror Image BAM module BAM_DUTY VAR BYTE[BAM_COUNT] LED1 VAR BAM_DUTY[0] ; group them in an array for easy access LED2 VAR BAM_DUTY[1] ; with FOR loops etc. LED3 VAR BAM_DUTY[2] LED4 VAR BAM_DUTY[3] LED5 VAR BAM_DUTY[4] LED6 VAR BAM_DUTY[5] LED7 VAR BAM_DUTY[6] LED8 VAR BAM_DUTY[7] ASM BAM_LIST macro ; Define PIN's to use for BAM BAM_PIN (PORTB,0, LED1) ; and the associated Duty variables BAM_PIN (PORTB,1, LED2) BAM_PIN (PORTB,2, LED3) ; BAM_PIN (PORTB,3, LED4) ; BAM_PIN (PORTB,4, LED5) ; BAM_PIN (PORTB,5, LED6) ; BAM_PIN (PORTB,6, LED7) ; BAM_PIN (PORTB,7, LED8) endm BAM_INIT BAM_LIST ; Initialize the Pins ENDASM '***************************************************************************** CLEAR '***************************************************************************** ;_________________________________________________ Speed CON 2'6 ; Smaller = Faster TracerSpeed CON 5'15 ; Smaller = Faster Left/Right Brightness CON 200 ; Tracers DutyCycle DrainSpeed CON 30 ; Smaller = Shorter Trail Idx VAR BYTE LoopCount VAR BYTE NextLED VAR BYTE TraceDIR VAR BIT TraceDIR = 0 LoopCount = 0 NextLED = 0 startup: for CNT =1 to 2 'for power on test purposes high b1 pause 1000 low b1 pause 1000 next CNT '***************************************************************************** Main: if LoopCount = TracerSpeed then ; __[ Cylon/Kitt Scanner ]__ LoopCount = 0 BAM_DUTY(NextLED) = Brightness if TraceDIR then ; if scanning left NextLED = NextLED - 1 if NextLED = 0 then TraceDIR = 0 else ; else scanning right NextLED = NextLED + 1 if NextLED = BAM_COUNT-1 then TraceDIR = 1 endif endif FOR Idx = 0 to BAM_COUNT - 1 ; Drain all dutycycles IF BAM_DUTY(Idx) > 0 then BAM_DUTY(Idx) = BAM_DUTY(Idx)*DrainSpeed/(DrainSpeed+1) ENDIF NEXT Idx pause Speed LoopCount = LoopCount + 1 high a2 GOTO Main
I thank you in advance




Bookmarks