Hallo Forumsmitglieder,
ich habe folgendes Programm geschrieben für das SKT200 Board.
#include <90s8535.h>
#include <stdio.h>
void main(void)
{
DDRB = 0xFF; // PORTB = Ausgang
DDRD = 0x01; // PORTD = Eingang
PORTD = 0x01; // PORTD = PULL-UP
do {
if (!(PIND&0x01)) // Bit 3 = 0 dann ist Taster
gedrückt
PORTB = 0xFE; // LEDs aus
if (!(PIND&0x02)) // Bit 3 = 0 dann ist Taster gedrückt
PORTB = 0xFD; // LEDs aus
else
PORTB = 0xFF; // LEDs an
} while(1); // Mainloop
}
Jetzt möchte ich gerne einen Countdown mit den Schaltern hoch regeln das
ich mir ein Belichtungsgerät bauen kann nur ich hab einfach zuwenig
Erfahrung damit.
Kann mir einer von euch einen Tipp geben Bitte?
Viele Grüße
Daniel
Fang damit an, dass du die LED im Sekundentakt blinken lässt. Dies deshalb, damit du erst einmal ein paar Techniken kennen lernst, wie man mit Zeiten in einem µC umgeht.
#include <90s8535.h>
#include <stdio.h>
void main (void)
{
DDRB = 0b00000001; //Datenrichtung festlegen.
while (1) //Endlosschleife
{
PORTB.0 = 0; //Codevision Compiler
delay_ms (500);
PORTB.0 = 1;
delay_ms (500);
}
} //End main
Hallo leider kommt bei mir immer noch eine Fehlermeldung bei delay_ms
(500); schreibt Codevision das ich ein undefiniertes Symbol verwende
warscheinlich weil ich die LBR nicht eingebunden habe kannst du mir
einen Tipp geben für den Fehler?
Viele Grüße
Daniel
Golfsburg schrieb: > #include <90s8535.h> > #include <stdio.h> > > void main (void) > > { > > DDRB = 0b00000001; //Datenrichtung festlegen. > > while (1) //Endlosschleife > > { > PORTB.0 = 0; //Codevision Compiler > delay_ms (500); > PORTB.0 = 1; > delay_ms (500); > } > > } //End main > > Hallo leider kommt bei mir immer noch eine Fehlermeldung bei delay_ms > (500); schreibt Codevision das ich ein undefiniertes Symbol verwende > warscheinlich weil ich die LBR nicht eingebunden habe kannst du mir > einen Tipp geben für den Fehler? Ob Codevision den delay_ms kennt oder nicht, musst du im Handbuch vom Codevision nachsehen. Aber wahrscheinlich hast du dir das (ohne den fehlenden _) von einer Seite abgeschaut, die den WinAVR Compiler benutzt. Diese Funktionsaufrufe sind alle Nicht-Standard C. Die Details musst du dir immer im Handbuch des Compilers suchen. Hier im Forum benutzen die meisten den WinAVR Compiler. Der ist nämlich gratis und die Syntax für den Einzelbitzugriff auf einen Port, wie die der Codevision Compiler als Erweiterung anbietet, wird ... gelinde gesagt .... überschätzt.
#include <90s8535.h>
#include <stdio.h>
#include <delay.h>
void main (void)
{
DDRB = 0b00000001; //Datenrichtung festlegen.
while (1) //Endlosschleife
{
PORTB.0 = 0; //Codevision Compiler
delay_ms (500);
PORTB.0 = 1;
delay_ms (500);
}
} //End main
Na gut man sollte lieber mal die Bedienungsanleitung durchlesen würde
ich sagen und dir recht geben.
Die LED blinkt jetzt im Sekundentakt.
Viele Grüße
Daniel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.