mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Analogwert Auswerten Bascom


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo hab ein kleines Problem

hab an einem Atmega 8535 ein Poti. Nun will ich eine Led ansteuern wenn 
das Poti eine bestimmte Stellung hat. Das geht auch. Jetzt sollte aber 
das Poti nicht nur bei einem Wert von z.B 256 leuchten, sonder wenn der 
Wert zwischen 240 und 260 liegt.

Leider weis ich jetzt nicht wie ich das in Bascom am besten 
Programmieren soll.

Danke für Eure Hilfe

Gruß Matthias

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
if (adc_wert>240 and adc_wert<260) then

Autor: Wolf Matthias (atmega8535)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort, aber leider geht das bei mir nicht.

Wenn der Wert X größer als 240 ist oder kleiner als 260 dann soll eine 
Led leuchten.


So sieht mein Programm aus

Do

Config Adc = Single , Prescaler = Auto , Reference = Internal

Start Adc

Config Portc = Output
Portc = 255



Dim W As Integer , Channel As Byte


'Analogwert einlesen

W = Getadc(1)
  Print "Channel 0 " ; " value " ; W
  'Incr Channel



'Analogwert 1


   If(w > 240 Or W < 260) Then
  Portc.0 = 0

End If





Loop

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Wolf Matthias (atmega8535)

>Danke für die Antwort, aber leider geht das bei mir nicht.

Tjaaaa, das soll vorkommen.

>Wenn der Wert X größer als 240 ist oder kleiner als 260 dann soll eine
>Led leuchten.

Das sagtest du bereits.
Besser vielleicht so.

' EINMALIGE Konfiguration!

Config Adc = Single , Prescaler = Auto , Reference = Internal

Start Adc

Config Portc = Output
Portc = 255

Dim W As Integer , Channel As Byte

' HIER geht die Endlosschleife los
Do

'Analogwert einlesen

W = Getadc(1)
  Print "Channel 0 " ; " value " ; W
  'Incr Channel

'Analogwert 1
   If(w > 240 Or W < 260) Then
     Portc.0 = 0
   else 
     Portc.0 = 1
   End If
Loop

MfG
Falk

Autor: Wolf Matthias (atmega8535)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Antwort. Hab deinen Code Kopiert und bei mir eingefügt.
Leider bringt Bascom bei der If Anweisung eine Fehlermeldung.

Unkow statement [IF(W> 240 OR W < 260)then]

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch es mal ohne Klammern
If W > 240 Or W < 260 Then

Autor: Jürgen C (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
die Bedingung gröser 240 oder kleiner 260 ist immer wahr.
Ich glaube du meinst größer 240 und kleiner 260; diese Bedingung ist
nur im Bereich von 240 bis 260 wahr.

If W > 240 and W < 260 then

Ich habs jetzt noch nicht probiert, aber es sollte so gehen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.