mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Abfrage von PINC ergibt high - obwohl kein Signal anliegt


Autor: Thomas H. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

beim Durchlaufen der folgenden Schleife springt er mir immer wieder nur 
in menu_ok obwohl definitiv kein Signal da ist.

Ich habe alle 4 Pins gleich angeschlossen: Widerstand 10k zwischen Pin 
und Vcc und Taster zwischen GND und Pin.

Alle Ports habe ich als Eingaenge deklariert.

Obwohl alle Pins gleich angeschlossen sind, gibt es nur bei PINC2 einen 
SUB-Aufruf obwohl Taster auf Off. Kommentiere ich die zwei Zeilen aus, 
funktioniert alles wie gewuenscht.

main:

  sbic  PINC, 3
  rcall  menu_esc

  sbic  PINC, 2
  rcall  menu_ok

  sbic  PINC, 1
  rcall  menu_minus

  sbic  PINC, 0
  rcall  menu_plus

  rcall  menu_lcd

rjmp  main


Wer hat da eine Idee, woran das liegen kann!?

Viele Gruesse,

Thomas H.

Autor: A.Füßer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Taster nicht gedrückt ist, sollte High-Pegel anliegen (a 
propos: du kannst auch die internen Pullups aktivieren und die externen 
sparen). sbic überspringt den Unterprogrammaufruf, wenn gelesener 
Pegel GND ist. Also sollte jedes Unterprogramm der Reihe nach 
aufgerufen werden, da alle high.
Hast du bisher nur "menu_ok" mit Code befüllt, und deshalb fällt dir nur 
dieser Aufruf auf?
Oder benutzt du einen AVR mit ADC, bei dem du die AVCC-VCC, AGND-GND und 
AREF-(VCC) Verbindungen vergessen hast?

André.

--
CAN@home - http://www.CANathome.de - Hausautomation mit AVR + CAN

Autor: Thomas H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo André,

ich habe jetzt noch gemerkt, dass es eigentlich bei jedem Sub 
einspringt. Allerdings hat das nur bei menu_ok Konsequenzen. Ich habe 
glaube cih sbic und sbis verwechselt.

Aber etwas naderes: wir kann ich die internen Pull-ups aktivieren?

Ade,

Thomas H.

Autor: A.Füßer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil ich nicht weiß welchen AVR du verwendest schlag ich mal 
exemplarisch für den 8515 nach. (Gilt aber für alle anderen auch):

Datenblatt auf S. 71; Tabelle 22:
DDCn muss 0 sein, PORTCn muss 1 sein -> int. Pullup aktiviert.

Also die Bits entsprechend setzen und die externen Pullups ausbauen.

André.

--
CAN@home - http://www.CANathome.de - Hausautomation mit AVR + CAN

Autor: Thomas H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andrè.

alles klar und danke,

Thomas H.

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.