-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: ADC gibt immer nur einen Wert aus?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2008
    Alter
    30
    Beiträge
    26

    ADC gibt immer nur einen Wert aus?

    Anzeige

    Hi,

    habe vor den ADC (channel 0) vom AtMega8 für einen shocksensor zu benutzen.

    Ich hab folgenden code zum testen geschrieben:
    Code:
    $regfile = "m8def.dat"
    
     $framesize = 32
     $swstack = 32
     $hwstack = 128
    
     $crystal = 1000000
    
    Config Adc = Single , Prescaler = 128
    
    Dim Wert As Word
    
    ' --- IO´s bestimmen ---
    
    Config Pind.6 = Output
    
    Led Alias Portd.6
    
    Led = 1
    
    Do
    
       Wert = Getadc(0)
       If Wert < 100 Then Led = 0
    
    Loop
    Egal ob ich wert <100 oder <1000 mache die LED geht nicht aus. Am Pin messe ich 0,0V (billiges MM). Der shocksensor gibt auch im leerlauf nur einige mV welligkeit aus. Selbst ohne shocksensor geht der wert nie auf 0 bzw 0V also iwas um die 0-100...

    Was mache ich falsch?

    MfG Vader

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Ich vermute mal das das daran liegt das du vor dem Do Befehl die Led auf 1 gesetzt hast. Mach mal eine if- Else Schleife also sagen:

    If wert=100 then LED =1 Else LED=0

    vielleicht hilft das ja bereits. Ansonsten wenn das nicht funktioniert sollte stell mal einen Schaltplan von der ganzen Schaltung rein. Hab da noch ne andere Lösung im Kopf, aber muss mich vorher halt noch vergewissern das es so sein könnte......

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2008
    Alter
    30
    Beiträge
    26
    Nein das hilft nicht.

    Code:
    
       Wert = Getadc(0)
       Waitms 100
       If Getadc(0) <> Wert Then Led = 1 : Waitms 1000 : Led = 0
    Der wert ändert sich nichtmal...

    Edit: Ausserdem muss die LED auf 1 gesetzt sein. Wenn der wert unter 100 geht soll die LED ausgehn...

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Ich würde sagen, "Start Adc" fehlt nach dem Config. Schau doch mal in die Bascom-Hilfe unter Config Adc.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2008
    Alter
    30
    Beiträge
    26
    Start ADC ist nicht nötig und mit funktioniert es auch nicht

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    gar nicht gesehn das der Start Befehl fehlt :/. Und setz mal deinen Prescaler auf Auto ist denk ich mal besser. Und Start Adc ist sehr wohl nötig. Bisher hast du den adc ja nur konfiguriert aber du musst dem Controller noch sagen das er den anschalten soll.

  7. #7
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Der Prescaler ist etwas hoch, das gibt es auch die Option Auto, dann sollte es stimmen. Sonst ein Prescaler von 8 oder 16. Die Ursache für das eigentliche Problem wird das vermutlich aber nicht sein, ich habs aber noch nicht Probiert den AD so langsam laufen zu lassen.

    Man sollte auch noch die Ref. Spannung definieren. Bei der eher kleinen Signalspannung vermutlich die interne Referenz.

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Config Portd.6 = Output ?

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2008
    Alter
    30
    Beiträge
    26
    PortD.6 ist meine LED.

    Ja mit der internen referenz scheint es zu funktionieren. Mhh vllt ist auf dem entwicklerboard da etwas nicht richtig.

  10. #10
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Das Board kann schon OK sein. Es ist nur gut möglich, dass man, wenn man bei der Ref. nichts angibt, die Auswahl externe Ref. kriegt. Wenn dann an Aref nur ein Kondensator dran ist, hat man keine definierte Spannung und ggf. eine zu kleine Spannung. Wenn es mit der internen Ref. geht, ist es also ein Softwarefehler.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •