WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Simulationen > Anfängerfragen

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 27.02.2007, 18:21   #1
ironeve
Newbie
 
Registriert seit: 27.02.2007
Beiträge: 3


Frage Microcontroller LED's TESTEN

Hallo Helfer.

euer Forum gefällt mir. sind mehr als ein paar sehr schlaue leute drin die immerwieder gute tips geben.

Ich möchte gerne mit dem Programm
µvision meine LED's die am Port 3 von meinem Prozessor angschlossen sind ansteuern. Das bedeutet ich möchte infach mal sehen ob sie angehen oder ob ich ein lauflicht machen kann usw..

nun habe ich aber nicht so viel ahnung mit C und C++.

Mein Prozessor ist der Infineon XC888CM
Ich kann die Programme mit DAVE oder µvision schreiben und dann mit dem USP-To JTAG BOX updaten.

wie heissen die befehle für LED ein/aus und wie soll ich eine schleife machen fürs lauflicht..
meine LEDs sind an Port 3.1 bis 3.3 angeschlossen.

wie initialisiere ich am anfag welche LED's an und aus sein sollen?

braucht ihr noch mehr info?
ich bednakne mich für eure hilfe.

Toni
ironeve ist offline   Mit Zitat antworten
Alt 28.02.2007, 09:11   #2
kefali
Veteran
 
Registriert seit: 18.10.2006
Beiträge: 465


Frage

Also wenn du die Programme mit DAVE oder µvision schreiben kannst (wie du sagst), was willst du dann mit C oder C++ ?

Was hast du für ein Interface an deinem Prozessor?

Meiner Meinung nach hast du ein für Basteleien nicht sehr geeignetes Instrumentarium.

Ein Lauflicht (wieviel LEDs?) wird mit einem ein Schieberegister nachbildenden Programm verwirklicht, das in dem von dir gewünschten Takt das Port 3 ansteuert.

Ob das Port dann direkt die LEDs ansteuern kann, bzw. ein Interface (Hardware) erforderlich ist, sagt dir das Datenblatt deines Prozessors.
kefali ist offline   Mit Zitat antworten
Alt 28.02.2007, 10:47   #3
Erikly
Senior Member
 
Registriert seit: 31.10.2000
Alter: 40
Beiträge: 177


Erikly eine Nachricht über ICQ schicken
Standard

Kannst du ma schaun, ob du vielleicht auch mit Assembler programmieren kannst...dann kann ich dir vielleicht helfen

Grüße Erikly
Erikly ist offline   Mit Zitat antworten
Alt 28.02.2007, 13:35   #4
Matt00
Master
 
Registriert seit: 18.06.2004
Alter: 39
Beiträge: 695


Standard

genau, assembler ist die lösung! ich glaube die befehle SETB P3.1 und CLR P3.1 sind fürs setzen und löschen!
____________________________________
lg
Matthias
Matt00 ist offline   Mit Zitat antworten
Alt 28.02.2007, 14:21   #5
Erikly
Senior Member
 
Registriert seit: 31.10.2000
Alter: 40
Beiträge: 177


Erikly eine Nachricht über ICQ schicken
Standard

Hmm, ich weiß jetzt nicht genau wies beim normalen PC is, aber ich kenne das Aktivieren eines Ports anders.

Ich habs im Moment leider nicht exakt im Kopf...muss ich auch erst nachschauen.

Auf jeden Fall gibts zu jedem Port bestimmte Register.
Zu Port P3 gibts zum Beispiel das Register P3OUT, P3DIR, usw.
Wenn mich nicht alles täuscht konnte man mit dem PXOUT Register den jeweiligen Port aktivieren, also da ne 1 setzen.
Wenn dein LED beispielsweise am P3.1 angeschlossen ist, würdest du das folgendermaßen aktivieren:

bis.b #BIT1,&P3OUT

das BIT1 bezieht sich auf das P3.!1!

Du setzt also in das Register P3OUT mit dem Befehl bis (Bit set) an die 2. stelle von rechts(BIT1) ne logische 1.
Wenn nun dein LED am P3.1 angeschlossen is, müsste es leuchten.

Wie gesagt, ich weiß nicht genau, ob das beim PC genauso is, wie beispielsweise beim Mikrocontroller.


Grüße Erikly
Erikly ist offline   Mit Zitat antworten
Alt 28.02.2007, 18:35   #6
ironeve
Newbie
 
Registriert seit: 27.02.2007
Beiträge: 3


Standard

Hi Leute

Danke für Eure schnelle Antwort.Ich merke schon ich habe es hier mit Experten zu tuen.

Also mit Dave bereite ich das Projekt vor. Ich kann z.B die Ports definieren, Timer, ADC, UART usw und starte es in µVision als Projekt. Dann sind schon die ganzen Header Dateien schon da was ich brauche.

Im µVision kann ich C, C++ oder Assmebler programmieren ..nur ich kann ja nicht programmieren.

ich hab euch mal eine ZIP datei angehängt.

gestern habe ich das ausprobiert. mit P3_DATA kann ich z.B meine LED Kombination einschalten.
void main( void )
{


P3_PUDSEL= 0xFF; //load pullup/pulldown select register
P3_PUDEN=0x0; //load pullup/pulldown enable register
P3_DIR=15; //load direction register 11111111
P3_DATA=10; //Nun leuchten die LED's 1010
//Beispiele Dezimal 15=1111; 5=0101
}

Wie kann ich jetzt z.B mit eine FOR-Schleife einen Lauflicht darstellen?
unsigned int i;
for (i=0;i<255;i++)
{
P3_DATA++
}

so nicht oder?

wenn ihr die zip datei nicht öffnen könnt bzw die daten in der zipdatei ..dann kann ich es euch auch schicken.

nochmals danke
Toni
ironeve ist offline   Mit Zitat antworten
Alt 06.03.2007, 23:22   #7
ironeve
Newbie
 
Registriert seit: 27.02.2007
Beiträge: 3


Standard

Hallo an alle die mir wegen dem LED Problem geschrieben haben

Ich konnte das Problem mit eine kleine FOR-Schleife lösen.
Jetzt laufen die LED's wie ein Lauflicht..

DANKE NOCHMALS
Toni

P.S.: Wie kann ich diesen Beitrag als erledigt markieren.?


P3_DIR = 0xFF; // load direction register
P3_PUDSEL = 0xFF; // load pullup/pulldown select register
P3_PUDEN = 0x00; // load pullup/pulldown enable register

while(1)
{
for (y=0;y<0x256;y++)
{
for (i=0;i<50000;i++)
{
P3_DATA=y;
}
y=y*2;
}
}
ironeve ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:07 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag