Hello friends,
I am posting this code for 12C672 which are OTP pics.
I do not have the 12C672JW and UV eraser--not for armature like me !
I have added my questions "???". I would appreciate your answers on these questions
Each error will cost me one 12C672, so please see if these are OK:
[ code ] code here [ /code ]
Code:'**********************************************START******* '----------------------------------------- 'Pic 12C672 TEST adopted from Rentron.com ' 'Trying to get 4 channel A/D conversion ' ' and the book "Programming PIC Microcontroller with PicBasic" ' ' and code samples in the great user forum of picbasic.co.uk ' ' Will program in JDM board with IC-Prog 1.05e,Win98SE, Tecra CDM750 with com port - does not work in inspiron 700m e USB--RS232 ' ' WHICH OPTIONS DO I SELECT in IC-Prog: ' a) Oscillator-->"IntRC GP4" or "IntRC CLOCKOUT" ; I want to use the onboard 4MHz osc. ??? ' b) Fuses---> "WDT" unchecked, "PWRT" checked, MCLR unchecked; Are these OK ??? ' ' Can it also be programmed with PonyProg--I am asking because there are less options than IC-Prog and ' it does not show the OSCCAL value for pic12C672<----??? '----------------------------------------- '..8.......5 '.-|-|-|-|-. '|PIC12C672| ''*|-|-|-|-' '..1.......4 ' 'PIN Name Use/Connection '1 Vdd +5VDC '2 GPIO.5 N/C Serial output to PC/ another PIC '3 GPIO.4 (Channel 3) 1K Resistor to center of 5K Pot // 33k resistor between +ve and -ve of 1.5v battery OR a voltage divider with <= 5v '4 GPIO.3 N/C Not Connected '5 GPIO.2 (Channel 2) Same as GPIO.4 '6 GPIO.1 (Channel 1) Same as GPIO.4 '7 GPIO.0 (Channel 0) Same as GPIO.4 '8 VSS Ground '---------------INCLUDE FILES------------- Include "modedefs.bas" 'Include serial modes//Not mentioned in Rentron '--------------------FUSES--------------- @ device pic12c672, INTRC_OSC_NOCLKOUT ;4MHz internal oscillator @ device pic12C672, WDT_OFF ; Watch Dog Timer is OFF @ device pic12C672, PWRT_ON ;Power On RESET On ??? is it OK ?? '???<---Any more fuses to setup--???? ' 'TRISA <---? how to declare it here ?? Is it needed ? ' '----------------DEFINITIONs and VARIABLES and SETUPS-------------- Define OSCCAL_2K 1 'Set OSCCAL for PIC12C672 // for 12C671 it is OSCCAL_1k '???WHAT is the use/need of the following line IF I use the above line ---??? OSCCAL = $58 'Got this by READING the PIC12C672 using IC-PROG;PonyProg does NOT show this <---EXTRA(???) DEFINE CHAR_PACING 100 'SEROUT pacing 0.1 millisecond RESULT var byte[4] 'Array for FOUR channels J var byte 'A/D channel number byte variable, this shortens the code ADCON1 = %00000000 'Set GPIO.0, GP1, GP2 and GP4 (NB NOT GP3) to ANALOG input, Vref=VDD, No pins left for DIGITAL I/O '-------------------PROGRAM STARTS HERE------------------- MAIN: FOR J = 0 to 3 'Count 4 channels '???<-->Shouldn't I set the ADCON0 as %11000001 to use the internal OSC, I want to use the internal OSC 'ADCON0=%10000001 'Set A/D Fosc/32,[4MHz],Channel-0 = on <----???? For External clock? ADCON0=%11000001 'Use the internal clock 'Do I need to do this every time a channel is read ???? 'Any alternate ??? ' %11xxxxxx <---This means ADCS1(bit7)=1 and ADCS0(bit6)=1; see table by Rentron/data sheet ' %xxxxxxx1 <---This means ADON (bit0) = 1 ie. turn the A/D on pauseus 10 'Wait for 10 u Sec for channel setup <---??? is the time OK? 'ADCON0.2 is bit2 which is the GO/DONE bit; see table by Rentron/data sheet ADCON0.2=1 'Start conversion by setting GO/DONE-bit to HIGH '???Can ADCON0.2=1 be substituted with ADCON0=%11000101 <----????? LOOP: IF ADCON0.2 = 1 THEN 'Check if conversion completed pauseus 5 'Wait for 5 micro second <---Is this time OK or should I increase it ?? GOTO LOOP ENDIF RESULT[J] = ADRES NEXT Pause 250 'Pause 1/4th sec so that conversion setup is done 'In what format will the output go to pc ? Binary, floating, integer, hex ???? 'Is it possible to send in a format of xx.xxx volt(e.g. 3.456v or 11.123) ? i.e. with 3 points after decimal ? ' SEROUT GPIO.5,N2400,["@",RESULT[0],"#",RESULT[1],"#",RESULT[2],"#",RESULT[3],"#"] 'Send the value of conversion to PC Serial port; @ will be used in PIC-PIC serout/serin2 'If you want to use baud rate above 2400, use external oscillator. Pause 250 'Pause 1/4th sec to let the Serial communication to complete; it takes much less than 1 sec GoTo MAIN '********************************************END*********




Bookmarks