Hallo,
ich habe heute angefangen etwas mit dem Development Board von olimex
rumzuprobieren um mir Hardwarenahe Programmierung nach und nach
beizubringen.
Dazu wollte ich zuallererst die Tutorials abarbeiten, und habe auf der
Seite vom Olimex ein Tutorial gefunden, welches Quasi alle Funktionen
des Boards anspricht, also LEDs, Beeps, LCD usw.
Mein Problem ist allerdings, das dieses Tutorial genauso wie ähnliche
Tutorials von TI auf meinem Board nicht zum erfolg führen. Zwar wird das
Programm auf den MSP geschrieben, nur scheint die Zuweisung vorne und
hinten nicht zu funktionieren, also anstelle eines LCD Ziffern Segmentes
blinkt eine andere Stelle usw. In den Tutorials steht auch, das die LED
an P5.1 angeschlossen ist, in meinem fall hängt sie aber an P6.2.
Mir ist auch die Zuweisung nicht wirklich klar. Mir würde es sehr
helfen, wenn mir jemand den angehängen Tutorial Code (quasi Hello World)
halbwegs erklären würde.
P5DIR |= 0x01;
Was an dieser Stelle passiert, ist mir nicht ganz klar P5Dir ist ein
Objekt oder eine Variable nehme ich an, |= heißt eigentlich sowas wie
Odergleich?!
Mir würde ein gutes Tutorial hier wirklich weiterhelfen, ich
programmiere sonst Java oder eher in Richtung Webgeschichten, habe auch
vor kurzem ein kleines Projekt mit einem Java Mikrokontroller umgesetzt,
allerdings lief dieses deutlich Hardwareferner ab, und hier an diesem
Teil bin ich zur Zeit noch überforder, vor allem deswegen, weil ich mir
die Programmiersyntax nicht anhand des Tutorials herleiten kann, da
dieses nicht funktioniert. Ich versuche hierbei nicht in Assembler zu
schreiben, sondern in C, allerdings habe ich hier keine wirklichen
Erfahrungen, wobei C ansich nicht mein Problem ist, sondern eher diese
Hardwarenahe Syntax.
1 | #include "msp430.h"
|
2 |
|
3 | int main(void)
|
4 | {
|
5 | WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
|
6 | P5DIR |= 0x01; // Set P5.1 to output direction
|
7 |
|
8 | for (;;)
|
9 | {
|
10 | volatile unsigned int i; // volatile to prevent optimization
|
11 |
|
12 | P5OUT ^= 0x01; // Toggle P5.1 using exclusive-OR
|
13 |
|
14 | i = 15000; // SW Delay
|
15 | do i--;
|
16 | while (i != 0);
|
17 | }
|
18 | }
|