i am doing a program for temperature control (temp max is 40deg)....if it exceeds start a fan at 80% duty cycle......
i am getting this error when i build it;;;
Error[128] C:\USERS\PRAVEEN\MPLAB\GDADC.ASM 51 : Missing argument(s)
when i click it is pointing to GOTO PWM80 line in the program......
i am using mplab ide v 8.20.....don know wat code tags are...
LIST P=16F877 ; XTAL 20 MHZ
Stimulus: Synchronous stimulus applied successfully.
CORE-W0014: Halted due to PC incrementing over the Maximum PC address and wrapping back to Zero
CORE-W0014: Halted due to PC incrementing over the Maximum PC address and wrapping back to Zero
CORE-W0014: Halted due to PC incrementing over the Maximum PC address and wrapping back to Zero
Stimulus: Synchronous stimulus applied successfully.
#include<p16f877a.inc>
#DEFINE LOOP ; if i did not use this it was givin an error symbol nt previously defined
#DEFINE PWM80
#DEFINE PWM20
#DEFINE PWM1
ORG 0X00
REG1 EQU 0X29
RES1 EQU 0X30
RES2 EQU 0X31
MOVLW 0XFF
BANKSEL TRISA
MOVWF TRISA ;PORTA I/P
BANKSEL PIE1
BCF PIE1,ADIF ;DISABLE ADC INTERRUPT
BANKSEL ADCON0
MOVLW 0XC1
MOVWF ADCON0 ; RA0 AS ADC PORT
MOVLW 0X80
BANKSEL ADCON1
MOVWF ADCON1 ; PORTA FOR ADC CHANNEL..RIGHT JUSTIFICATION
;SUBROUTINE GETADC===============================
LOOP BANKSEL ADCON0
BSF ADCON0,GO ; start a/d conversion
ADCLOOP BTFSC ADCON0,GO ;WAIT FOR CONVERSION TO FINISH
GOTO ADCLOOP
BCF PIR1,ADIF ; CLEAR CONVERSION COMPLETE FLAG
;COMPARISON WITH THE SETPOINT====================
MOVF ADRESL,W
SUBLW .83 ;FOR SETPOINT 40 DEGREES
MOVWF RES1
BTFSC RES1,7 ; CHECK WHETHER THE MSB IS 1 ,IF SO IT MEANS
; THAT TEMP>40 HENCE CALL 80% PWMDUTYCYCLE
GOTO PWM80
SUBLW .73 ; FOR 35 DEGREES
MOVWF RES2
BTFSC RES2,7 ;CHECK WHETHER THE MSB IS 1 ,IF SO IT MEANS
; THAT TEMP>35 HENCE CALL 20% PWMDUTYCYCLE
GOTO PWM20
GOTO PWM1 ; IF THE ABOVE TWO CONDS DOES NT SATISFY CALL
; 1% PWMDUTY CYCLE
;PWMCYCLES==========================================
PWM80 BANKSEL PR2
MOVLW 0X31
MOVWF PR2 ; FREQUENCY IS SET FOR 10MICROSECS
BCF STATUS,RP0
BCF STATUS,RP1
MOVLW 0X48
MOVWF CCPR1L
MOVLW 0X0C
MOVWF CCP1CON
;TRISC Setting for output
BANKSEL TRISC
BCF TRISC, PWM1
BANKSEL T2CON
;TMR2 Prescale selection(PRESCALE TO 1:16 AND POSTSCLE TO 1:1) and TMR2 Turn On
MOVLW 0X07
MOVWF T2CON
GOTO LOOP
PWM20 BANKSEL PR2 ;FOR 20%DUTYCYCLE
MOVLW 0X31
MOVWF PR2 ; FREQUENCY IS SET FOR 10MICROSECS
BCF STATUS,RP0
BCF STATUS,RP1
MOVLW 0X0A
MOVWF CCPR1L
MOVLW 0X0C
MOVWF CCP1CON
;TRISC Setting for output
BANKSEL TRISC
BCF TRISC, PWM1
BANKSEL T2CON
;TMR2 Prescale selection(PRESCALE TO 1:16 AND POSTSCLE TO 1:1) and TMR2 Turn On
MOVLW 0x07
MOVWF T2CON
GOTO LOOP
PWM1 BANKSEL PR2 ; FOR 1% DUTYCYCLE
MOVLW 0X31
MOVWF PR2 ; FREQUENCY IS SET FOR 10MICROSECS
BCF STATUS,RP0
BCF STATUS,RP1
MOVLW 0X00
MOVWF CCPR1L
MOVLW 0X2C
MOVWF CCP1CON
;TRISC Setting for output
BANKSEL TRISC
BCF TRISC, PWM1
BANKSEL T2CON
;TMR2 Prescale selection(PRESCALE TO 1:16 AND POSTSCLE TO 1:1) and TMR2 Turn On
MOVLW 0x07
MOVWF T2CON
GOTO LOOP
END
pls help me out...........how to solve this....
i am getting this error when i build it;;;
Error[128] C:\USERS\PRAVEEN\MPLAB\GDADC.ASM 51 : Missing argument(s)
when i click it is pointing to GOTO PWM80 line in the program......
i am using mplab ide v 8.20.....don know wat code tags are...
LIST P=16F877 ; XTAL 20 MHZ
Stimulus: Synchronous stimulus applied successfully.
CORE-W0014: Halted due to PC incrementing over the Maximum PC address and wrapping back to Zero
CORE-W0014: Halted due to PC incrementing over the Maximum PC address and wrapping back to Zero
CORE-W0014: Halted due to PC incrementing over the Maximum PC address and wrapping back to Zero
Stimulus: Synchronous stimulus applied successfully.
#include<p16f877a.inc>
#DEFINE LOOP ; if i did not use this it was givin an error symbol nt previously defined
#DEFINE PWM80
#DEFINE PWM20
#DEFINE PWM1
ORG 0X00
REG1 EQU 0X29
RES1 EQU 0X30
RES2 EQU 0X31
MOVLW 0XFF
BANKSEL TRISA
MOVWF TRISA ;PORTA I/P
BANKSEL PIE1
BCF PIE1,ADIF ;DISABLE ADC INTERRUPT
BANKSEL ADCON0
MOVLW 0XC1
MOVWF ADCON0 ; RA0 AS ADC PORT
MOVLW 0X80
BANKSEL ADCON1
MOVWF ADCON1 ; PORTA FOR ADC CHANNEL..RIGHT JUSTIFICATION
;SUBROUTINE GETADC===============================
LOOP BANKSEL ADCON0
BSF ADCON0,GO ; start a/d conversion
ADCLOOP BTFSC ADCON0,GO ;WAIT FOR CONVERSION TO FINISH
GOTO ADCLOOP
BCF PIR1,ADIF ; CLEAR CONVERSION COMPLETE FLAG
;COMPARISON WITH THE SETPOINT====================
MOVF ADRESL,W
SUBLW .83 ;FOR SETPOINT 40 DEGREES
MOVWF RES1
BTFSC RES1,7 ; CHECK WHETHER THE MSB IS 1 ,IF SO IT MEANS
; THAT TEMP>40 HENCE CALL 80% PWMDUTYCYCLE
GOTO PWM80
SUBLW .73 ; FOR 35 DEGREES
MOVWF RES2
BTFSC RES2,7 ;CHECK WHETHER THE MSB IS 1 ,IF SO IT MEANS
; THAT TEMP>35 HENCE CALL 20% PWMDUTYCYCLE
GOTO PWM20
GOTO PWM1 ; IF THE ABOVE TWO CONDS DOES NT SATISFY CALL
; 1% PWMDUTY CYCLE
;PWMCYCLES==========================================
PWM80 BANKSEL PR2
MOVLW 0X31
MOVWF PR2 ; FREQUENCY IS SET FOR 10MICROSECS
BCF STATUS,RP0
BCF STATUS,RP1
MOVLW 0X48
MOVWF CCPR1L
MOVLW 0X0C
MOVWF CCP1CON
;TRISC Setting for output
BANKSEL TRISC
BCF TRISC, PWM1
BANKSEL T2CON
;TMR2 Prescale selection(PRESCALE TO 1:16 AND POSTSCLE TO 1:1) and TMR2 Turn On
MOVLW 0X07
MOVWF T2CON
GOTO LOOP
PWM20 BANKSEL PR2 ;FOR 20%DUTYCYCLE
MOVLW 0X31
MOVWF PR2 ; FREQUENCY IS SET FOR 10MICROSECS
BCF STATUS,RP0
BCF STATUS,RP1
MOVLW 0X0A
MOVWF CCPR1L
MOVLW 0X0C
MOVWF CCP1CON
;TRISC Setting for output
BANKSEL TRISC
BCF TRISC, PWM1
BANKSEL T2CON
;TMR2 Prescale selection(PRESCALE TO 1:16 AND POSTSCLE TO 1:1) and TMR2 Turn On
MOVLW 0x07
MOVWF T2CON
GOTO LOOP
PWM1 BANKSEL PR2 ; FOR 1% DUTYCYCLE
MOVLW 0X31
MOVWF PR2 ; FREQUENCY IS SET FOR 10MICROSECS
BCF STATUS,RP0
BCF STATUS,RP1
MOVLW 0X00
MOVWF CCPR1L
MOVLW 0X2C
MOVWF CCP1CON
;TRISC Setting for output
BANKSEL TRISC
BCF TRISC, PWM1
BANKSEL T2CON
;TMR2 Prescale selection(PRESCALE TO 1:16 AND POSTSCLE TO 1:1) and TMR2 Turn On
MOVLW 0x07
MOVWF T2CON
GOTO LOOP
END
pls help me out...........how to solve this....
Last edited: