BASCOM Taster und Relais

OP #1704229
Lesenswert?

$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 #1704243
Lesenswert?

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 #1704260
Lesenswert?

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?
#1704265
Lesenswert?

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
Gast #1704285
Lesenswert?

@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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren