Hatt ich auch, die 1023.
Habs mit
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
hinbekommen
Druckbare Version
Hatt ich auch, die 1023.
Habs mit
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
hinbekommen
Hallo!
Ich hab auch das gleiche Problem mit dem ATtiny26.
Ich möchte zwei Spannungen am Pin PA0(ADC0) und PA1(ADC1) messen, aber es klappt nicht. Während ich am Pin PA1 eine Spanunng messen kann, die auch mit dem gemessenem und ausgerehnetem Wert übereinstimmt, stimmt dagegen der Wert am PA0 überhaupt nicht.
Ich kann zwar die gemessenen Werte nicht direkt anzeigen, aber ich kann eine Schaltschwelle einstellen und eine LED, beim erreichen dises Wertes ein- und ausschalten.
An den PA2 bis PA4 sind LEDs an +5V (natürlich mit Vorwiderstand :) ) angeschlossen so, dass die Ausgänge gegen GND schalten.
Als program habe ich den angepassten code von BASCOM verwendet.
poste bitte mal deine Code
Hall!
Hier ist der code.
Könnt ihr mir sage wie das mit dem ADC Interrupt geht?
ich meine so ähnlich wie "On Int0 tue_irgendwas", denn in der neuen BASCOM Hilfe habe ich leider nichts gefunden.
Grüße Viktor
Code:'###############################################################################
'#####
'##### Project: 6A-Netzteil
'##### Version: v1.0
'##### Date: 10.03.2007
'##### Projectname: 6A_Netzteil_v1.0.bas
'##### Developer: Krieger, Viktor
'#####
'###############################################################################
'########[ Description ]###########################################################
'####PORT A####
' PA0 = [ADC CH0] CONTROL_SPL ( voltage control 12V )
' PA1 = [ADC CH1] PWR_SPL (voltage control 33,6V )
' PA2 = [OUT] LED_ERR (Error LED) signals an error of the power-supply
' PA3 = [OUT] LED_SDWN (Shut Down LED) signals powerdown - state
' PA4 = [OUT] LED_RDY (Ready LED) signals that all ok
' PA5 = [OUT] NC this pin is not connected
' PA6 = [OUT] REL_POWON
' PA7 = [OUT] REL_PROTECT
'####PORT B####
'
' PB0 = [DEF] MOSI *
' PB1 = [DEF] MISO *
' PB2 = [DEF] SCK *
' PB3 = [IN] JP1 jumper 1
' PB4 = [IN] JP2 jumper 2
' PB5 = [OUT] ERROR signals other devices an error (no error = 1/ on error = 0)
' PB6 = [IN] SDWN input for standby sequence (active 0)
' PB7 = [DEF] RESET *
'
' * Default configuration of the portpin's by using of hardware SPI !!!
'###############################################################################
$regfile = "at26def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 16
$framesize = 24
'########[ Hardware Configuration ]#################################################
' Configurate ADC's
' Single - as single ended inputs
' Auto - for the fastest possible samplingrate
' Internal - set Vref @ 2,56V
Config ADC = Single , Prescaler = Auto , Reference = Internal
' Cofigurate Interrupts
Config Int0 = Low Level ' coonfigurate Int0 at Low Level
On Int0 ISR_Int0 ' jump to ISR_Int0 label
' Enable Global Interrupts
Enable Interrupts 'enable all Interrupts
Enable Int0 'enable Interrupt Int0
' Port's Directions & PullUp's
DDRa = &B1111_1100 ' configurate I/O's 1-OUT/ 0-IN
DDRb = &B0010_0000 ' configurate I/O's 1-OUT/ 0-IN
PORTa = &B0000_0000 ' internal PullUps 1/0 on/off
PORTb = &B1100_0000 ' internal PullUps 1/0 on/off
' Output's PORT A
LED_ERR Alias PORTa.2
LED_SDWN Alias PORTa.3
LED_RDY Alias PORTa.4
REL_POWON Alias PORTa.6
REL_PROTECT Alias PORTa.7
' Input's PORT B
JP1 Alias PINb.3
JP2 Alias PINb.4
SDWN Alias PINb.6
' Output's PORT B
ERROR Alias PORTb.5
'########[ Constants ]#############################################################
Const PowerUp_Delay = 25 ' const x 100ms = powerup delay time [ms]
Const minThresoldCh0 = 690 ' 690
Const minThresoldCh1 = 700 ' 700
'########[ Variables ]#############################################################
Dim Overload_Flag As Bit
Dim Value_Ch0 As Word
Dim Value_Ch1 As Word
'########[ Initialisation ]###########################################################
Overload_Flag = 0
Gosub LED_TEST
Gosub POWER_UP
'########[ Main Code ]############################################################
Main:
Do
Value_Ch1 = GetAdc(1)
Waitms 10
Value_Ch1 = GetAdc(1)
Waitms 10
Value_Ch0 = GetAdc(0)
Waitms 10
Value_Ch0 = GetAdc(0)
Waitms 10
If Value_Ch0 < minThresoldCh0 Then
GoSub OVERLOAD
EndIf
If Value_Ch1 < minThresoldCh1 Then
GoSub OVERLOAD
EndIf
Loop
End
'########[ Subroutines ]###########################################################
LED_Test:
LED_ERR = 0
LED_SDWN = 0
LED_RDY = 0
Waitms 1000
LED_ERR = 1
LED_SDWN = 1
LED_RDY = 1
Return
Power_Up:
Dim i As Byte
Start Adc
LED_RDY = 0
REL_PROTECT = 1
Do
Toggle LED_RDY
Waitms 100
Incr i
Loop Until i = PowerUp_Delay
REL_POWON = 1
Waitms 100
REL_PROTECT = 0
LED_RDY = 0
Goto MAIN
Power_Down:
Stop Adc
LED_RDY = 1
LED_SDWN = 0
REL_POWON = 0
Do
Waitms 400
Toggle LED_SDWN
Loop Until SDWN = 1
LED_SDWN = 1
Return
Overload:
Overload_Flag = 1
REL_POWON = 0
REL_PROTECT = 0
LED_RDY = 1
LED_ERR = 0
Do
Toggle LED_ERR
Waitms 1000
Loop
Return
'########[ ISR Routines ]##########################################################
ISR_Int0:
Disable Int0
If Overload_Flag = 1 Then
Gosub OVERLOAD
EndIf
Gosub POWER_DOWN
Enable Interrupts
Enable Int0
Gosub POWER_UP
End