Hi, gecko
No problem compiling with MPASM 7.41 and PbP 2.46a ...
Error [ 118 ] is to forget when using @ __config
May be add END ... at the end !!!, but that's not compulsory ( good habit then ... )
Alain
Hi, gecko
No problem compiling with MPASM 7.41 and PbP 2.46a ...
Error [ 118 ] is to forget when using @ __config
May be add END ... at the end !!!, but that's not compulsory ( good habit then ... )
Alain
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Originally Posted by Acetronics
I'm not sure I understand what your saying exactly but.
fails compile sayingCode:'12F675 @ __CONFIG _INTRC_OSC_CLKOUT & _WDT_OFF & _MCLR_OFF & _CP_OFF DEFINE OSC 4 OPTION_REG.5 = 0 ' clock source internal CMCON = 7 ANSEL=0 Pulselen var word ' Pulselen can be 0 - 255, 100 = 1 ms, 200 = 2 ms Init var word ' Init used to flash LED Clear ' set all variables = 0 Input GPIO.3 ' set pin 5 to RX signal ReadPWM: PulsIn GPIO.3, 1,Pulselen ' pin 4 - read high pulse length, times out after .65535 seconds pause 15 If Pulselen < 50 Then GoTo Blink ' no signal -> blink led If Pulselen > 75 Then GoTo solid ' signal -> Solid led GoTo ReadPWM Blink: For Init = 1 To 3 ' blink led 3 times High GPIO.1 pause 200 Low GPIO.1 pause 200 Next pause 1000 GoTo ReadPWM Solid: High GPIO.1 pause 3000 Low GPIO.1 pause 200 GoTo ReadPWM END
error 113 Symbol not previously defined (MLCR_OFF)
When I use _MCLRE_OFF instead it compiles with no error.
Just a few comments from my basic understanding of RC
If you read the comments for pulselen it states that 100 = 1ms and 200 = 2ms, but your if / then statement states that if its less than 50 go blink. If you are monitoring a "normal" PPM signal from a receiver, the pulse length will be around 1ms for low stick and 2ms for full stick, with 1.5ms at centre. So even at low stick the signal will be 1ms or a pulse length of 100, it will never be lower than 50, and this the code will never jump to flash.Code:Pulselen var word ' Pulselen can be 0 - 255, 100 = 1 ms, 200 = 2 ms Init var word ' Init used to flash LED Clear ' set all variables = 0 Input GPIO.4 ' set pin 3 to RX signal - changed as GPIO3 is not ideal ReadPWM: PulsIn GPIO.4, 1,Pulselen ' pin 3 - read high pulse length, times out after .65535 seconds pause 15 If Pulselen < 50 Then GoTo Blink ' no signal -> blink led If Pulselen > 75 Then GoTo solid ' signal -> Solid led GoTo ReadPWM
I too had to change the config line to MCLRE_OFF for it to program without error
EDIT:
Oh and one other thing that may be causing the problem is that the RX will be sending the PPM pulse every 20ms, so you will need to get the timing right so that the pin is checked for a pulse at the right time. According to code it times out after .65535 seconds, maybe you need to make this time out after 20ms so it loops back round. Most of my experiments with other languages used the pre-scaler to get the timer to roll over at the desired timing if a pulse wasn't present. Maybe some of the more experienced guys can jump in here as I don't know if PBP features this option ?
Last edited by malc-c; - 26th August 2006 at 00:53.
'12F675
@ DEVICE pic12F675, INTRC_OSC_NOCLKOUT
' System Clock Options
@ DEVICE pic12F675, MCLR_OFF
' Master Clear Options (Internal)
@ DEVICE pic12F675, WDT_OFF
' Watchdog Timer
@ DEVICE pic12F675, CPD_OFF
DEFINE OSC 4
OPTION_REG.5 = 0 ' clock source internal
CMCON = 7
ANSEL=0
Pulselen var word ' Pulselen can be 0 - 255, 100 = 1 ms, 200 = 2 ms
Init var word ' Init used to flash LED
Clear ' set all variables = 0
Input GPIO.3 ' set pin 5 to RX signal
ReadPWM:
PulsIn GPIO.3, 1,Pulselen ' pin 4 - read high pulse length, times out after .65535 seconds
pause 15
If Pulselen < 50 Then GoTo Blink ' no signal -> blink led
If Pulselen > 75 Then GoTo solid ' signal -> Solid led
GoTo ReadPWM
Blink:
For Init = 1 To 3 ' blink led 3 times
High GPIO.1
pause 200
Low GPIO.1
pause 200
Next
pause 1000
GoTo ReadPWM
Solid:
High GPIO.1
pause 3000
Low GPIO.1
pause 200
GoTo ReadPWM
END
ugg that doesn't compile either
A bunch of illegal opcode warnings and errors
207 and 122.
This is what the author of the original code said to me.
That clock is much faster (meaning the 12F657) . The 12c508 has a 4Mhz clock. The return from Pulsin for the 12c508 is: 100 = 1.0 ms, 150 = 1.5 ms, 200 = 2.0 ms. You need to adjust the numbers to whatever your PIC returns in Pulsin. I have not looked at the data sheet. It will be there somewhere, or in the help data for your compiler.
Maybe this is the problem?
It compiled without error on my PBP ver 2.47, I don't mean to be rude, Did you remember to select the appropriate device in the compiler (IDE) up at the top? I am confused are we talking about a 12F675, a 12f657, or a 12c508?
It shows 199 words compiled for 12F675, it will not compile for a 12c508 or 12f508 as is. As for if it will work or not, that's beyond the scope of my examination, and likely ability, but it does compile as is.
Last edited by Archangel; - 26th August 2006 at 07:00.
Bookmarks