Hi, the Holy Squad ...
I found this was overall a bit strange ...
so, rewrote the program and tested it with ISIS ... ( note it works fine NOW ... with ISIS !!! )
just change the DEC3 and DEC4 ( lcdout section ) into DEC ...
and, please, tell me your results ...
There's something I really do not understand here ...Alain
Code:'**************************************************************** '* Name : UNTITLED.BAS * '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2013 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 10/05/2013 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** INCLUDE "modedefs.bas" 'Includes supoprt for PicBasic language OSCCON = %01101000 ' 16F 88 4 Mhz ... for those who didn't find it ... ( LOL ) DEFINE OSC 4 DEFINE LCD_DREG PORTB ' Set LCD Data port DEFINE LCD_DBIT 4 ' Set starting Data bit (0 or 4) if 4-bit bus DEFINE LCD_RSREG PORTA ' Set LCD Register Select port DEFINE LCD_RSBIT 2 ' Set LCD Register Select bit DEFINE LCD_EREG PORTA ' Set LCD Enable port DEFINE LCD_EBIT 3 ' Set LCD Enable bit DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits) DEFINE LCD_LINES 2 ' Set number of lines on LCD DEFINE LCD_COMMANDUS 2500 DEFINE LCD_DATAUS 250 DEFINE CHAR_PACING 2000 pause 1500 LCDOUT $FE,1 ' Define ADCIN parameters Define ADC_BITS 10 ' Set number of bits in result Define ADC_CLOCK 3 ' Set clock source (3=rc) Define ADC_SAMPLEUS 50 ' Set sampling time in uS DEFINE CCP1_REG PORTB DEFINE CCP1_BIT 0 CMCON = 7 CVRCON = 0 ANSEL = %00000011 ' set AN0, AN1 as analog, others to digital ADCON0 = %11000001 ' Configure and turn on A/D Module ADCON1 = %10000000' Set PORTA analog for ten bit ADC PORTA = 0 PORTB = 0 TRISB = %01000010 TRISA = %00000111 DutyCycle var word OldDutyCycle Var Word Frequency var word OldFrequency VAR word WHILE 1 'ADCON0.2 = 1 'Start Conversion pause 20 ADCIN 0, DutyCycle 'Read channel PORTA.0 Duty Cycle ADCIN 1, Frequency 'Read channel PORTA.1 Frequency 'Frequency = Frequency + 245 'DutyCycle = DutyCycle/4 IF Frequency <> OldFrequency OR DutyCycle <> OldDutyCycle THEN lcdout $FE,2, "DutyCyc: ", dec3 DutyCycle/4 lcdout $FE,$C0, "Frequen: ", dec4 Frequency+245 pause 100 HPWM 1,DutyCycle/4,Frequency+245 'channel, dutycycle, frequency OldFrequency = Frequency OldDutyCycle = DutyCycle pause 20 ENDIF WEND END






Bookmarks