Hallo Leute, ich bin Änfanger im Bereich Mikrocontroller und wollte Euch mal fragen ob es eine gute Anleitung gibt wie man mit dem Keil uVersion3 programmiert auch im Hinblick auf dei Start-Datei und dem LPC2294? Ich habe die Keil Software und ein Philips-Board LPC2294
Hi, hast du ein MCB von Keil? Dann sind mit Sicherheit examples unter c:\keil\boards\mcb..\ Wenn nicht, trotzdem mal schauen, auch ne Menge anderer Boards (also examples für Boards) sind da zu finden. Sonst aus den Board-Beispielen eins raussuchen, was deinen Prozessor verwendet, und an dein Board (siehe Schaltplan) anpassen. --- Zum µVision: From scratch: Neues Projekt anlegen, NXP, LPC22... auswählen, Copy Startup Code: YES. Dann kannst du eigentlich direkt anfangen, weil alles nötige schon im startup.s gemacht wird. Wichtig: Lad dir das Register-Manual runter, wirste brauchen. VG, /r.
Ich hab ein Startset von der Firma Phytec. Hat auch soweit alles geklappt wie du es gesagt hast. Dankeschön dafür. Nur bräuchte ich noch entweder so ne Anleitung für die ersten Schritte oder ein Buch das sich mit ARM und ein Buch über Keil beschäftigt, falls ich auch mal die Start-Datei oder sontiges abändern muss/will. Hat jemand dafür auch noch einen Tipp?
> Nur bräuchte ich noch entweder so ne Anleitung für die ersten Schritte > oder ein Buch das sich mit ARM und ein Buch über Keil beschäftigt, falls > ich auch mal die Start-Datei oder sontiges abändern muss/will. Hat > jemand dafür auch noch einen Tipp? Buchempfehlung habe ich keine. Aber es gibt einiges an Information ohne "tote Bäume": - Schon in die online-Hilfe geschaut? Sollte ein Dokumentation des Assemblers drin sein. Code aus den Beispielen als Vorlage nehmen und entsprechend ändern. - Hitex "Insiders Guide" für Philips ARM (nun NXP) http://www.hitex.de/download.html . Aktuelle Version nicht angeschaut, mglw. etwas veraltet (Keil wurde von ARM gekauft und uVision (RV-MDK) nutzt im Hintergrund das ARM Realview toolset). - http://www.arm.com/ und http://infocenter.arm.com Erläuterungen zu Core, Realview, Assembler- und C-Programmierung, nicht LPC-spezifisch aber viel nützliche Information. - Im Hinblick auf den Controller: User Guide durchlesen, ganz durchlesen, zweimal durchlesen, Errata durchlesen (alles auf www.standardics.npx.com zu finden). - Bei Keil/ARM RV-MDK mitgelieferte Beispiele (keil/arm/boards/phytec/lpc229x/) nachvollziehen.
Danke für Eure Hilfe, habe mich jetzt eingelesen und möchte nun einen Ausgang setzen. Ich habe das Beispiel Blinky genommen und folgenden Code abgeändert: int main (void) { PINSEL0 = 0X00000000; // Pinsel Pin 0.13 frei init_timer(); /* Initialize Timer */ IODIR0 = 0x000001000; // PIN 0.13 while(1) { IOCLR0 = 0x00001000; // SET P0.13 = 0 wait(); /* Wait */ IOSET0 = 0x00001000; // Set P0.13 = 1 wait(); /* Wait */ } } Alles andere habe ich nicht verändert. Doch auf meinem "patch-Feld HD200" kann ich keine Spannung messen. Wait hab ich auf ne halbe Minute erhöht um was zu messen!
P0.13 ist 0x00002000 bei IODIR0, IOSET0 und IOCLR0
Danke für den Tipp mit dem Rechenfehler, aber ich kann immer noch nichts messen. Hat jemand noch eine Idee was ich falsch gemacht habe?
Bei Keil gibts unter Books->Completer Users Guide Selection->Getting Started. Das könnte helfen. Benutzt du ULINK ? Oder wie kommt die Software ins Flash ? Hat das original Blinki irgendwas sinnvolles gemacht ?
Ja ich benutze Ulink. Das orginal Blinki blinkt in den Abständen von dem Timer wie ich es eingestellt habe. Muss man bei IODIR0, IOSET0 und IOCLR0 eine bestimmte Reihenfolge beachten oder ist es egal? Bei Keil unter books habe ich nichts gefunden! int main (void) { while(1) /* Loop forever */ { init_timer(); /* Initialize Timer */ IODIR0 = 0x00000100; /* P0.8 defined as Output */ IOCLR0 = 0x00000100; /* Turn LED On (P0.8 = 0) */ wait(); /* Wait */ IOSET0 = 0x00000100; /* Turn LED Off (P0.8 = 1) */ IODIR0 = 0x00002000; // PIN 0.13 IOSET0 = 0x00002000; // Set P0.13 = 1 wait(); /* Wait */ IOCLR0 = 0x00002000; // SET P0.13 = 0 wait(); /* Wait */ }
dann schau mal unter C:\Keil\ARM\Hlp (bei dem Standard Installationspfad) da gibts ein armtools.chm IODIR0 kommt normal zuerst. Die Richtung sollte man halt vor der Verwendung setzen. Wenn du ULINK hast, dann geh doch einfach in den Debug Modus und setz die Register manuell unter Peripherals.
@Peter, "IODIR0 kommt normal zuerst. Die Richtung sollte man halt vor der Verwendung setzen." Not really! Zuerst soll man den Wert setzen, dann Power drauf geben! Sonst kann man sehr unschoene Spikes mit der falschen Polaritaet bekommen. Das gibt die tollsten und sehr schwer nachvollziehbaren Effekte. Also IODIR kommte nach IOSET. p.s. spielt bei einer LED keine Rolle aber bei einem Leistungstransistor evtl. schon. Stellt dir vor da kommt ein Interrupt nach IODIR und die Polaritaet war daneben und erst ein paar ms spaeter kommt der IOSET. Gruss, Robert
Ich habe im meinen Programm nun einen Port als Eingang deklariert und möchte dieses nun im Debug-Modus mit uVersion 3 von Keil testen. Ausgänge kann ich im Debug Modus auch händisch über GPIO setzen, aber wo kann ich Eingänge setzen um zu sehen ob mein Programm funktioniert? Ich wäre sehr dankbar über eure Hilfe
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.