AVR Pin Abfrage, einfaches Problem

Gast #902129
Lesenswert?
• ▲
▼
Guten Morgen

Ich habe ein einfaches Problem, bei dem ich aber noch nicht die Lösung 
gefunden habe.

Ich möchte einfach eine Pin Abfrage machen, folgender Code:

#include <avr/io.h>
#include <delay.h>
#include <stdio.h>


inline uint8_t debounce(volatile uint8_t *port, uint8_t pin)
{
if ( ! (*port & (1 << pin)) )
{
/* Pin wurde auf Masse gezogen, 100ms warten */
_delay_ms(50); // max. 262.1 ms / F_CPU in MHz
_delay_ms(50);
if ( *port & (1 << pin) )
{
/* Anwender Zeit zum Loslassen des Tasters geben */
_delay_ms(50);
_delay_ms(50);
return 1;
}
}
return 0;
}
int main(void)
{
DDRC &= ~( 1 << PC7 ); /* PIN  auf Eingang (Taster) */
PORTC |= ( 1 << PC7 ); /* Pullup-Widerstand aktivieren */

if (debounce(&PINC, PC7)) /* Falls Taster an PIN  gedrueckt.. */
PORTC = PINC ^ ( 1 << PC4 ); /* ..LED an Port  anbzw. ausschalten */

}

Leider kommt immer die Fehlermeldung das PC7 nicht deklariert ist, wie 
kann ich abfragen ob an einem Pin high liegt ohne Pxn ? (x..Port, 
n..Pinnummer)

../test.c:25: error: 'PC7' undeclared (first use in this function)
../test.c:25: error: (Each undeclared identifier is reported only once
../test.c:25: error: for each function it appears in.)

In jedem Tutorial wird Pxn verwendet....

Ich würde mich über eine Hilfestellung freuen

lg
#902133
Lesenswert?
• ▲
▼
Patrick wrote:
> Leider kommt immer die Fehlermeldung das PC7 nicht deklariert ist, wie
> kann ich abfragen ob an einem Pin high liegt ohne Pxn ? (x..Port,
> n..Pinnummer)
>
> ../test.c:25: error: 'PC7' undeclared (first use in this function)
> ../test.c:25: error: (Each undeclared identifier is reported only once
> ../test.c:25: error: for each function it appears in.)
Hat Dein Controller denn überhaupt einen Pin 7 am Port C? Ich vermute 
mal nein.... Da Du nicht erzählst, mit welchem AVR Du arbeitest, musst 
Du es selber nachsehen. Ansonsten mal sicherstellen, dass der im 
Makefile eingestellte µC auch dem entspricht, den Du programmieren 
willst.
Gast #902177
Lesenswert?
• ▲
▼
Das Bild ist nicht falsch, sondern nur unvollständig.
Du verwendest den PD7.
Nach dem Bild könnte man auch meinen, es gäbe den PC1 doppelt.

Atmel gibt seine Datenblätter kostenlos zum Download frei,
is das nix?

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.