Codevision Countdown

OP (Firma: Ascher) #1530863
Lesenswert?

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
Gast #1533019
Lesenswert?

#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
#1533024
Lesenswert?

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.
Gast #1533052
Lesenswert?

#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

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