Gast
#902129
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