BASCOM Taster und Relais

OP #1704229
$regfile = "m8def.dat"                                      'ATmega8
$crystal = 4000000                                          '4 MHz
$hwstack = 100
Config Pind.6 = Input
Config Portb.0 = Output
Pind.6 = 1
Dim An as Bit
Do
If Pind.6 = 0 Then
An = 0
else
An = 1
End If
If An = 0 Then
Portb.0 = 0
Else
Portb.0 = 1
End If
Loop

an Portb.0 hängt ein Relais mit Transistor und einer Diode in 
Sperrrichtung
an Pind.6 ein Taster

Problem ist nun, das das Relais willkürlich schaltet und nicht nur dann 
wenn ich den Taster drücke. Woran hängts?
Gast
Hi

>Soll laut BASCOM aber mit Pind.6 = 1 erledigt sein. Der zieht gegen
>Masse

Du kannst PIND keinen Wert zuweisen. Vermutlich verwechselst du das mit 
dem Einschalten des internen Pull-Up-Widerstandes. Das geht aber mit 
PortD.6 = 1.

Aber mit Entprellen hat das nichts zu tun.

MfG Spess
Gast
Hallo,

wenn du die Zeile

> Pind.6 = 1

änderst in

>> Portd.6 = 1

so wird der interne Pull-Up eingeschaltet.

> (Das Prellen) Soll laut BASCOM aber mit Pind.6 = 1 erledigt sein.

Das halte ich für ein Gerücht; BASCOM hat spezielle Routinen zum 
Entprellen (Stichwort: Debounce).

Was wird mit dem Relais denn geschaltet?
Gast
Hi

>stimmt das eig so wie ich es hab

Das lese ich aber anders. Komplette Sätze incl. Groß- und 
Kleinschreibung wären auch nicht schlecht.

MfG Spess
Nette Mann schrieb:
> Soll laut BASCOM aber mit Pind.6 = 1 erledigt sein. Der zieht gegen
> Masse

Ach Quatsch, Blödsinn, Unfug, totaler Mumpitz.

Entprellen ist das A und O jeder Realtime Programmierung.
Man ist leider allseits von Geräten umgeben, deren Programmierer alle 
nur Hochstapler sind und ihr Handwerk grundsätzlich nicht beherrschen.


Bascom machts Dir leicht und gibt Dir den Befehl "Debounce", 
funktioniert ähnlich meinem
Beitrag "Entprellen für Anfänger"

Solange Du nicht die Super-Duper Version (8 Tasten gleichzeitg, nix 
Warten) benutzt, nimm wenigstens den.


Peter
P.S.:
Mag vielleicht hart klingen, aber ich habe mich gerade wieder mal 
furchtbar über die miese Software des Drehgebers meiner super teuren 
Kaffemaschine geärgert.
Ich muß das Ding wohl zurückbringen, sonst lernen die Deppen das 
Programmieren ja nie.


Peter
Gast
@Nette Mann:
Was soll daran nun besser sein?

Der erste If-Block ist überflüssig; er hat keine zusätzliche Wirkung im 
Vergleich zu vorher (ausser CPU-Zeit zu vergeuden). Der zweite Block mit 
der Variable "An" statt "Vcc" reicht aus.

Ausserdem fehlt immer noch die Entprellung des Tasters; das Toggeln des 
Bits "An" wird sonst mehrfach ausgeführt ...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.