mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Touchpoint programmieren


Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Leute,
ich komm hier grad irgendwie nicht weiter....
Und zwar will ich eigentlich nur eine Art Touchpoint programmieren.
D.h. ich habe einen IR-Sensor an einem Analogeingag vom uC. Wenn ich den 
Touchpoint nun berühre soll ein Pin angehn....nochmal berühren = aus.
Hier mal mein Quellcode:

Config Porta = Input
Config Portb = Output
Config Adc = Single , Prescaler = Auto , Reference = Off
Start Adc
Do

If Getadc(0) >= 200 And Pinb.0 = 0 Then
Pinb.0 = 1
End If

If Getadc(0) >= 200 And Pinb.0 = 1 Then
Pinb.0 = 0
End If
Loop
End


Also eigentlich nicht viel was man falsch machen kann^^
Hardwaretechnisch ist alles ok, denn wenn ich statt Pinb.0 den Ausdruck 
PORTB=&B00000001 schreibe und noch ne while Schleife setze funzts 
perfekt. Da ich aber noch mehrere Touchpoints anschließen 
muss....brauche ich es ähnlich wie oben.
Danke im vorraus
Fabian

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PINB ist nicht gleich PORTB.

Skriptkiddy

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fabian schrieb:
> If Getadc(0) >= 200 And Pinb.0 = 0 Then
> Pinb.0 = 1
> End If
>
> If Getadc(0) >= 200 And Pinb.0 = 1 Then
> Pinb.0 = 0
> End If
> Loop
> End
>
>
> Also eigentlich nicht viel was man falsch machen kann^^

Doch.

Sieh Dir einfach mal an, was passiert, wenn Dein (falsches*) Pinb.0 = 1 
das erste Mal ausgeführt wird.

Sofort danach wird ein weiteres mal der ADC abgefragt und wenn Pinb.0 == 
1 ist, Pinb.0 auf 0 gesetzt.

Und sofort danach wird wieder der ADC abgefragt und wenn Pinb.0 == 0 
ist, es wieder auf 1 gesetzt.

Sprich: Solange der ADC einen Wert größer als 199 liefert, oszilliert 
die Angelegenheit mit durch die Abtastrate des ADC bestimmter Frequenz.

Du hast aber wohl was anderes vor ...

*) Sieh Dir den Einwand von "Skriptkiddy" an

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.