Forum der Firma Krause Robotik
Fragen zur Antsteuerung der Ausgänge - Druckversion

+- Forum der Firma Krause Robotik (http://www.krause-robotics.de/forum)
+-- Forum: Hardware (/forumdisplay.php?fid=4)
+--- Forum: KrMega32-16 (/forumdisplay.php?fid=15)
+--- Thema: Fragen zur Antsteuerung der Ausgänge (/showthread.php?tid=40)



Fragen zur Antsteuerung der Ausgänge - Frederik.Ebert - 16.06.2007 21:39

Ich habe das Microcontrollerboard Kr-Mega 32-16 und
hätte einige Fragen zur Programmierung der Ausgangsports.

Ich wollte den digitalen Port 9 als Ausgang auf 5V setzten und
habe die Anweisungen der Anleitung befolgt. Leider war danach nicht
der , von mir gewünschte Port an, sondern Port 17-21.

Ich hätte gerne gewusst welche genauen Schritte erforderlich sind um
den Port auf ,,An'' zu setzen.


     Frederik Ebert


RE: Fragen zur Antsteuerung der Ausgänge - thomas - 19.06.2007 13:47

Hallo Frederik!

Wenn du die von uns mitgelieferte Bibliothek nutzt erreichst du die Aktivierung des Ports mit folgendem Befehl:

setDigitalOut(9);

Um den Port wieder auf 0 Volt zu setzen nutze den Befehl:

clearDigitalOut(9);

Sollte das immer noch nicht funktionieren, poste doch bitte mal dein Programm. Dann kann ich da vielleicht mehr sehen.

Grüße

Thomas


RE: Fragen zur Antsteuerung der Ausgänge - Frederik.Ebert - 06.07.2007 16:40

Hallo Thomas

die Ausgänge haben jetzt funkioniert!!! Anschließend habe ich
versucht die Eingänge in Betrieb zu nehmen. In meinen Quelltext habe ich, wie schon in der Dokumentation steht, den Befehl ,, intDigital(10)''
verwendet indem ich einen If-satz geschieben habe:

#include "kr-mega32v23.h"

void rprintfTest(void);
int main(void)
{
lcdInit();//Initialisierungen
lcdSetSpeed(300);
rprintfInit(lcdDataWrite);

while(1)//Endlosschleife (Abfragen der Messwerte bei Port10)
{
if (intDigital(10)>0)
{
rprintf("Port 10 an ");
}
}
return 0;
}

Leider wurde dieses Programm nicht vom Compiler angenommen.
Vielleicht könntest du mir einen Beispielquelltext schicken.


Frederik


RE: Fragen zur Antsteuerung der Ausgänge - Manfred2 - 06.07.2007 21:03

Hallo,
in dem Programm muss irgendwo ein kleiner Fehler sein, welche Fehlermeldung bringt denn der Compiler? Das kann gut weiterhelfen!

Manfred


RE: Fragen zur Antsteuerung der Ausgänge - Frederik.Ebert - 07.07.2007 08:28

Hallo,

also die Fehlermeldung, die bei meinem Quelltext auftaucht ist
,,undefined Refereences to 'intDigital' ''. Vielleicht hilft diese
Information bei Vermeiden des Fehlers weiter.

           Frederik


RE: Fragen zur Antsteuerung der Ausgänge - Manfred2 - 09.07.2007 07:04

Hallo,
hier liegt möglicherweite ein kleiner Denkfehler vor.
"int digital (int port)" in der Dokumentation beschreibt den grundsätzlichen Aufbau des Abfragebefehles eines Digitalports. Im Progamm umgesetzt muss dann die entsprechende Zeile in Deinem Programm
"if (digital(10)>0)"
lauten.
Probiers mal, viel Glück

Manfred


RE: Fragen zur Antsteuerung der Ausgänge - Frederik.Ebert - 09.07.2007 14:24

Hallo Manfred,

Vielen Dank für die Anwort.
Ich habe es jetzt mit der Funktion "if (digital(10)>0)"
ausprobiert. Leider tritt immer noch ein Fehler auf, den der
Compiler ''Implict Declaration of function 'Digital' '' nennt.
Ich denke mal ,dass damit gemeint ist, dass der Compiler den Befehl
mithilfe der Bibliothek nicht identifizieren kann.

Vielleicht kannst du mir ja ein Programmbeispiel schicken, bei dem Ports
abgefragt werden.

Frederik


RE: Fragen zur Antsteuerung der Ausgänge - thomas - 10.07.2007 17:00

Hallo!

Deine Fehlerbeschreibung deutet darauf hin, dass die Bibliothek nicht korrekt eingebunden wird.

Hier ein Beispielprogramm zum Abfragen und Anzeigen des Digitalports.

Zitat://----- Include Files ---------------------------------------------------------
#include "kr-mega32v23.h"

//----- Begin Code ------------------------------------------------------------
int main(void)
{
int myPort;

// initialize our libraries
// initialize the timer system
timerInit();
lcdInit();
rprintfInit(lcdDataWrite); //set rprintf output to LCD
rprintf("Hallo! ");

while(1)
{
myPort = digital(10);
lcdGotoXY(0, 1);
rprintf("%d ", myPort);
timerPause(100);
}


return 0;
}

Wichtig ist am Anfang vor allem das Einbinden der Kopfdatei mit include.
Wenn du die vorbereiteten Makefiles nutzt, sollte die Bibliothek dann korrekt eingebunden werden.
Ich hoffe, das hilft weiter.

Grüße

Thomas


RE: Fragen zur Antsteuerung der Ausgänge - Manfred2 - 11.07.2007 11:06

Hallo, Frederik,
ich habe mal Dein Progrämmchen hergenommen und zum Laufen gebracht. Hier ist der C-Code:

#include "kr-mega32v23.h"

void rprintfTest(void);
int main(void)
{
lcdInit();//Initialisierungen
lcdSetSpeed(300);
rprintfInit(lcdDataWrite);

while(1)//Endlosschleife (Abfragen der Messwerte bei Port10)
{
lcdClear();
lcdHome();

if (digital(10)>0)
{
rprintf("Port 10 high ");
}
else rprintf("Port 10 low ");
}
return 0;
}


Auf dem Display erscheint dann ganz einfach der Zustand des Ports 10, so wie Du das wolltest!

Manfred


RE: Fragen zur Antsteuerung der Ausgänge - Frederik.Ebert - 14.07.2007 10:15

Hallo,

Danke für die Tipps. Die Eingänge haben jetzt endlich funktioniert!!!!



Frederik