vielen dank für eure hilfe ,
Mir fehlt es nur , wie ich das anstelle damit das maximal wert gespeichert bleibt für ein paar sekunden , ich benutze ein atmega 32 und kein 16 hatte mich vertippt.
Bin von beruf Betriebselektriker also kein profiprogramierer,ich mache hobbiemässig meine erste versuche mit Bascom
bin für jeden tip dankbar
hab der code ein bischen aufgeräumt
Code:
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 10
$framesize = 40
Config Portc = Output
Config Portd = Output
Config Portb = Output
Config Porta.0 = Input
Dim Led_pos As Word
Dim Bar_pattern As Word
Dim T1 As Word
Const Led_max = 16
Const T1_fs = 325
Const T1_step = 16
Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc
Do
If Led_pos >= 15 Then
Led_pos = 15
End If
If Led_pos <= 0 Then
Led_pos = 0
End If
Bar_pattern = Lookup(led_pos , Bar_mode)
Portd.7 = Bar_pattern.15
Portd.6 = Bar_pattern.14
Portd.5 = Bar_pattern.13
Portd.4 = Bar_pattern.12
Portd.3 = Bar_pattern.11
Portd.2 = Bar_pattern.10
Portd.1 = Bar_pattern.9
Portd.0 = Bar_pattern.8
Portc.0 = Bar_pattern.7
Portc.1 = Bar_pattern.6
Portc.2 = Bar_pattern.5
Portc.3 = Bar_pattern.4
Portc.4 = Bar_pattern.3
Portc.5 = Bar_pattern.2
Portc.6 = Bar_pattern.1
Portc.7 = Bar_pattern.0
T1 = Getadc(0) - 90
Led_pos = T1_fs - T1
Led_pos = Led_pos \ T1_step
Loop
Return
Bar_mode:
Data &B1111111111111111%
Data &B1111111111111110%
Data &B1111111111111100%
Data &B1111111111111000%
Data &B1111111111110000%
Data &B1111111111100000%
Data &B1111111111000000%
Data &B1111111110000000%
Data &B1111111100000000%
Data &B1111111000000000%
Data &B1111110000000000%
Data &B1111100000000000%
Data &B1111000000000000%
Data &B1110000000000000%
Data &B1100000000000000%
Data &B0000000000000000%
Lesezeichen