www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BASCOM Taster und Relais


Autor: Nette Mann (nette-mann)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Paul Baumann (paul_baumann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Taster ist nicht enprellt.

MfG Paul

Autor: Nette Mann (nette-mann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soll laut BASCOM aber mit Pind.6 = 1 erledigt sein. Der zieht gegen 
Masse

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nette Mann (nette-mann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also 10k an den Taster oder wie

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>also 10k an den Taster oder wie

Ich habe geschrieben:  ...des internen Pull-Up-Widerstandes.

Und der liegt um die 50k.

MfG Spess

Autor: Nette Mann (nette-mann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also


Portd.6 = 1

oder wie jetzt weil laut

http://mitchsoft.de/Elektronik/Projects/AVR/Tips/tip001.html

stimmt das eig so wie ich es hab

Autor: AVRuser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nette Mann (nette-mann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
If Pind.6 = 0 Then
Toggle An
End If

If An = 0 Then
Vcc = 0
Else
Vcc = 1
End If
If Vcc = 0 Then
Portb.0 = 0
Else
Portb.0 = 1
End If

so funzt es auch mit
Config Pind.6 = Input
Portd.6 = 1

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: AVRuser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.