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%