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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren