mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tasten entprellen Zeiterkennung am atmega164p


Autor: Sven D. (posti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche am atmega164p die Tasten zu entprellen mit Zeiterkennung 
(long..short).
Die Beispiele hab ich mir im Forum bereits angeschaut, aber 
funktionieren bei mir irgendwie nicht.

Funktionieren tut aber:
    if(bit_is_set(PIND, 2))
    {  
    loop_until_bit_is_clear(PIND, 2);
    starte_funktion();
    } 


Kann mir da jemand auf die Sprünge helfen, was beim atmega164p anders 
ist?

Autor: Fred S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Dein Code (für Code-Abschnitte übrigens nur
[c] ANFANG
und ENDE [/c] 
) ist die "intuitive/naive" Version, die auf Prellen keine Rücksicht 
nimmt.

> aber funktionieren bei mir irgendwie nicht.
Du musst uns schon genau wissen lassen, welcher Code wo und wie 
nicht funktioniert (Code ins Posting kopieren, wenn er länger ist als 
Anlage anhängen, genaue Fehlerbeschreibung). Hast Du den Code von einem 
anderen Prozessor auf den ATmega164p portiert? Gibt es 
Compiler-Warnungen?

Gruß

Fred

Autor: Sven D. (posti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also ich habe folgenden Code genommen:

http://www.mikrocontroller.net/attachment/12660/C_TAST.C

Allerdings kam schon mal als Compilerfehler (kein warning) im Code:
  TCCR0 = 1<<CS02;        // divide by 256 * 256
  TIMSK = 1<<TOIE0;        // enable timer interrupt

undeclared first use in this function.

Autor: Fred S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Sven,
> Allerdings kam schon mal als Compilerfehler (kein warning) im Code:
>
>   TCCR0 = 1<<CS02;        // divide by 256 * 256
>   TIMSK = 1<<TOIE0;        // enable timer interrupt
> 
> undeclared first use in this function.
Kein Wunder: Du musst schon dafür sorgen, dass ein Programm auch auf 
Deinem spezifischen Prozessor lauffähig ist! Beim ATmega164p gibt es 
kein SFR "TIMSK", sondern mehrere TIMSKx-Register.

Also: Versuche den Code (insbesondere die Verwendung der Timer) zu 
verstehen; dann portiere den Code auf den Prozessor, auf dem er laufen 
soll.

Gruß

Fred

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.