ESR-Meter Update

Ik heb nu de code werkend gekregen. Er is iets mis met picbasic waardoor de AD omzetting problemen geeft bij een 16f690. Daarom heb ik zelf een stukje code geschreven voor het “handmatig” uit te lezen.

De code:

'****************************************************************
'* Name : ESR_meter *
'* Author : [Stynus] *
'* Notice : Copyright (c) 2008 [www.elektronicastynus.be] *
'* : All Rights Reserved *
'* Date : 24/02/2009 *
'* Version : 1.1 *
'****************************************************************
'Config
 Device 16F690
 Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_OFF, MCLRE_OFF
 XTAL = 8
 OSCCON = %01110111

 Dim spanning As Word
 Dim esr As Float
 
 Declare LCD_DTPIN PORTC.4
 Declare LCD_ENPIN PORTC.3
 Declare LCD_RSPIN PORTB.6
 Declare LCD_LINES 2 

 TRISA.2 = 1 
 ADCON0 = %10000001
 ANSEL = %00000100 
 ANSELH = %00000000
 
 ADIN_RES = 10 
 ADIN_TAD = FRC 
 ADIN_STIME = 500 

 Symbol lcdTijd = 600
 Clear
 Cls
 Print At 1, 1, "ElektronicaStynu"
 Print At 2, 1, " ESR-Meter V1.2 "
 DelayMS lcdTijd
 Print At 1, 1, "lektronicaStynus"
 DelayMS lcdTijd
 Print At 1, 1, "ektronicaStynus."
 DelayMS lcdTijd
 Print At 1, 1, "ktronicaStynus.b"
 DelayMS lcdTijd
 Print At 1, 1, "tronicaStynus.be"
 DelayMS lcdTijd
 
 Cls
 Print At 1, 1, " ESR-Meter V1.2 " 
 Print At 2, 1, " ESR = , "
 Print At 2, 16, $FE,$40,$00,$0E,$11,$11,$11,$0A,$1B,$00


While 1 = 1 
 GoSub AD_in
 spanning = spanning - 480
 esr = spanning / 19
 If esr > 27 Then
 Print At 2, 9, "Open "
 Else 
 Print At 2, 9, DEC2 esr , " "
 EndIf
 DelayMS 550 

Wend
AD_in:
 ADCON0 = %10001001 
 DelayMS 510
 ADCON0.1 = 1 
 While ADCON0.1 = 1 : Wend
 spanning = 0
 spanning.HighByte = ADRESH
 spanning.LowByte = ADRESL

Return
End

De hex file

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *