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

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.

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.