E
Ev0luti0n
Guest
Hey Leute.
Ich bin seit ein paar Tagen an meinem neu erstandenem Experimentierboard dran und hab nach langem versuchen (drecks Freeware
) den Compiler zum Laufen gebracht.
Ich hab jetzt auch schon etwas mit den LED`s herumgespielt und bin auf ein Problem gestoßen. Ich wollte , dass "LED4" im 150ms-Takt toggelt , wohingegen die LED's 1-3 im 500ms Takt toggeln. (Diese können auch über DIP Schalter ausgeschaltet werden).
Das Problem : Die Prozesse laufen nicht gleichzeitig. Wie kann ich das Problem lösen (forken?).
Hier das Script:
Bitte nicht flamen. Ich habe erst vor ein paar wenigen Tagen mit Programmieren angefangen.
LG Ev0luti0n
Ich bin seit ein paar Tagen an meinem neu erstandenem Experimentierboard dran und hab nach langem versuchen (drecks Freeware

Ich hab jetzt auch schon etwas mit den LED`s herumgespielt und bin auf ein Problem gestoßen. Ich wollte , dass "LED4" im 150ms-Takt toggelt , wohingegen die LED's 1-3 im 500ms Takt toggeln. (Diese können auch über DIP Schalter ausgeschaltet werden).
Das Problem : Die Prozesse laufen nicht gleichzeitig. Wie kann ich das Problem lösen (forken?).
Hier das Script:
Code:
#include "testoplatine.h" //kleine Header für Taktrate etc.
[S]//#include <math.h>[/S]
void main(void);
void pin3toggeln(void) { // Das ist die Funktion für das Toggeln der
if(1) { // LED3 am Pin3 von Port1.
p1_3=1;
waitms(150);
p1_3=0;
waitms(150);
} }
void pin02toggeln(void) { //Die Funktion für das Toggeln der LED`s 1-3
if(p1_6==1) { //If ist für an- und ausschalten durch den
p1_0=0; //DIP-Schalter , welcher mit port 6 verbunden
p1_1=1; //ist.
p1_2=0;
[S]//p1_3=1;[/S]
waitms(500);
p1_0=1;
p1_1=0;
p1_2=1;
[S]//p1_3=0;[/S]
waitms(500);
}
else { //Wenn der DIP-Schalter auf 0 ist , dann soll
p1_0=1; //alles ausgeschaltet werden.
p1_1=1;
p1_2=1;
p1_3=1;
}
}
void main(void) //Main ist hoffentlich selbsterklärend ;)
{
[S]//int a;[/S]
init(); //Initialisiert den uC.
pd1=0x0F; //Legt die pins 0-3(port1) als Ausgänge fest
[S]//pd0=0x02;
//p0_1=0;[/S]
p1_6=1; //Spannung an dem Dip-Schalter.
p1_0=1; //Spannung an LED1 (aus, weil pin0 Ausgang)
p1_1=0; //Keine Spannung an LED2(an)
p1_2=1; //siehe oben
p1_3=0;
[S]//p0_1=0;
//a=analogwert(1);[/S]
waitms(500);
while(1) {
pin3toggeln(); //Funktionen von oben sollten gleichzeitig
pin02toggeln(); //ausgeführt werden. Hier liegt das
[S]/*if(1) { //Problem.
p1_3=1;
waitms(150);
p1_3=0;
waitms(150);
}
if(p1_6==1) {
p1_0=0;
p1_1=1;
p1_2=0;
//p1_3=1;
waitms(500);
p1_0=1;
p1_1=0;
p1_2=1;
//p1_3=0;
waitms(500);
}
else {
p1_0=1;
p1_1=1;
p1_2=1;
p1_3=1;
}*/[/S]
}
}
Bitte nicht flamen. Ich habe erst vor ein paar wenigen Tagen mit Programmieren angefangen.
LG Ev0luti0n
Zuletzt bearbeitet von einem Moderator: