Gast
#2990241
Veruch mich grad im Programmieren und will in C die Portpins als eingänge mit #define im AVR Studio definieren. Dies kann doch auf diesem Weg umgestzt werden: #define INPUT_A PINB0
|
Anzeige
|
definieren von Portpins mit #define
Gast
#2990241
Veruch mich grad im Programmieren und will in C die Portpins als eingänge mit #define im AVR Studio definieren. Dies kann doch auf diesem Weg umgestzt werden: #define INPUT_A PINB0
Gast
#2990245
Kenia schrieb: > Dies kann doch auf diesem Weg umgestzt werden: > > #define INPUT_A PINB0 nö, weil du damit überhaupt kein code erzeugst. @Kenia Lies dir das mal durch http://www.mikrocontroller.net/articles/C-Präprozessor
Gast
#2990995
Es geht darum später in der while schleife mit diesen neuen Ausdrücken
anstatt PINA0 PINA1 PINA2.. zu arbeiten
#define LaserA_Input PINA0
#define Messergebnis PORTB0
Also
statt
...
while
{
if (PINA0 ==1)
PORTB0 ==1;
}
will ich schreiben
while
{
if (LaserA_Input== 1)
Messergebnis ==1;
}
Gast
#2991015
Die Grundidee ist richtig, allerdings kann zu mindestens der GCC nicht direkt auf Pins zugreifen. Du musst also eher sowas machen:
Oder hier gucken: Beitrag "Re: "Syntaxbefehl" erstellen"
Gast
#2991024
Kenia schrieb: > if (PINA0 ==1) > PORTB0 ==1; Uhhh, Vorsicht! Vergleiche: == Zuweisungen: = (Der Compiler sollte aber ne Warnung ausspucken.)
Gast
#2991030
Oh Gott... :P Definiere Dir lieber Inline-Funktionen mit klaren Namen, das ist lesbarer und auf jeden Mikrocontroller portabel:
Man kann es auch mit einem einfachen #define machen, etwa so
Einfach lesbar und selbsterklärend. Und wenn sich mal die Pinzuordung ändert, muss man nur EINMAL die defines ändern, der Rest vom Quelltext bleibt wie er ist.
Gast
#2991296
Ich kann Falk Brunner nur zustimmen! Irgendwann steigt man auf einen anderen Controller um. Dann kann man den Code problemlos übernehmen und muss nur ein paar #defines ändern. Ich hatte es so gemacht, der Umzug einer GLCD Ansteuerung dauerte nur 2 Stunden. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|