Heb hier en daar wat achter je programma gezet.
Eerst declareer je ADCON1, dan ergens in je programma weer ADCON0.
Dit gaat niet werken zo.
Op 19 januari 2010 15:48:03 schreef TechnOoB12:
'**************************************************************** '* Name : PIC 2 van XPSll.BAS * '* Author : Roel Zwetsloot * '* * '* Date : 17-1-2010 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** DEVICE 16F818 config CP_OFF, CPD_OFF, LVP_OFF,MCLRE_OFF,PWRTE_ON,INTRC_OSC_NOCLKOUT,WRT1_OFF,WRT0_OFF, DEBUG_OFF ;Logische constanten SYMBOL ON = 1 [WAAR IS SYMBOL OFF] ;declares LCD DECLARE LCD_ENPIN PORTA.6 DECLARE LCD_RSPIN PORTA.7 Declare ADIN_RES = 10 ; resolutie 10 bits Declare ADIN_TAD = frc ; set RC osc intern Declare ADIN_STIME = 50 ; sample tijd 5 ;variabelen DIM letter AS BYTE DIM Volts AS float DIM Raw AS word ; poortnamen symbol A = PORTA.5 symbol B = PORTB.0 symbol C = PORTB.1 symbol D = PORTB.2 symbol E = PORTB.3 ;andere symbolen SYMBOL stap = 5.0 / 1024 [LOOPT MAAR TOT 1023] ; 76543210 PORTA = %00000000 PORTB = %00000000 TRISA = %11111100 TRISB = %00001111 ADCON1 = %00001011 [HIER ZET JE ADCON1 NEER] ; opstartprocedure ADCON0 = %11100001 [WAT IS DIT, HIER STAAT WEER ADCON0] CLEAR DELAYMS 250 cls print at 1, 1, "Welcome" delayms 200 print at 2, 1, " XPS-ll Supply " delayms 500 cls ;Hoofdprogramma While 1 = 1 If A = ON then letter = 65 elseif B = ON then letter = 66 elseif C = ON then letter = 67 elseif D = ON then letter = 68 elseif E = ON then letter = 69 endif ; data conversie ;76543210 ADCON0 = %11100101 [HIER STAAT OOK WEER ADCON0] Raw = ADRESH Volts = Raw * stap ; uiteindelijke weergaves PRINT AT 1, 1,"supply ",letter," :" PRINT AT 2,1, DEC3 Volts,"Volt" wend end