Hallo, also erstmal zu mir ich bin in C ein kompletter Anfänger da ich von der Schule aus nur mit C# gearbeitet habe. Jetzt wollte ich mich einmal näher mit C eclipse beschäftigen. Ich habe hier einen vorgegebenen Quellcode aber wenn ich diesen Übernehme funktioniert dieser nicht Richtig. Wie sieht den genau die Datei test1.c aus und das dazugehörige makefile? Ich hoffe ihr könnt mir helfen, denn sonst bin ich echt am verzweifeln hier :D #include <msp430x14x.h> #include "test1.h" char eingabe; int eingabeflag; void main(void) { unsigned int i; eingabeflag = 0; WDTCTL = WDTPW + WDTHOLD; // Stop WDT BCSCTL1 |= XTS; // ACLK = LFXT1 = HF XTAL do { IFG1 &= ~OFIFG; // Clear OSCFault flag for (i = 0xFF; i > 0; i--); // Time for flag to set } while ((IFG1 & OFIFG) != 0); // OSCFault flag still set? BCSCTL2 |= SELM1+SELM0; // MCLK = LFXT1 (safe) UCTL0 = CHAR; // 8-bit character UTCTL0 = SSEL0; // UCLK = ACLK UBR00 = 0x45; // 8MHz 115200 UBR10 = 0x00; // 8MHz 115200 UMCTL0 = 0x00; // 8MHz 115200 modulation ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD IE1 |= URXIE0; // Enable USART0 RX interrupt P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD P3DIR |= 0x10; // P3.4 output direction _EINT(); // Enable interrupts ausgabe ("\n\r Waehle Zahl zwischen 0 und 2!\n\r"); for (;;) { if (eingabeflag == 1) //check input flag { switch (eingabe) { case '0': ausgabe ("Sie haben die 0 gewaehlt!\n\r"); eingabeflag = 0; break; case '1': ausgabe ("Sie haben die 1 gewaehlt!\n\r"); eingabeflag = 0; break; case '2': ausgabe ("Sie haben die 2 gewaehlt!\n\r"); eingabeflag = 0; break; default: ausgabe("Die Eingabe war nicht korrekt!\n\r"); eingabeflag = 0; } } } } void ausgabe (char *inText) //function to print text in hyper terminal { char *cpText; //intern pointer for (cpText = inText; *cpText; cpText++) //print char untill pointer = null { while ((IFG1 & UTXIFG0) == 0); // USART0 TX buffer ready? TXBUF0 = *cpText; } } interrupt[UART0RX_VECTOR] void usart0_rx (void) { eingabe = RXBUF0; // read input character eingabeflag = 1; // set input flag }
peterlustig wrote: > Hallo, > also erstmal zu mir ich bin in C ein kompletter Anfänger da ich von der > Schule aus nur mit C# gearbeitet habe. Jetzt wollte ich mich einmal > näher mit C eclipse beschäftigen. Ich habe hier einen vorgegebenen > Quellcode aber wenn ich diesen Übernehme funktioniert dieser nicht > Richtig. Wie sieht den genau die Datei test1.c aus und das dazugehörige > makefile? > Ich hoffe ihr könnt mir helfen, denn sonst bin ich echt am verzweifeln > hier :D Formatierung:!!!!
1 | > #include <msp430x14x.h> |
2 | > #include "test1.h" |
3 | > char eingabe; |
4 | > int eingabeflag; |
5 | > void main(void) |
6 | > { |
7 | > unsigned int i; |
8 | > eingabeflag = 0; |
9 | .....
|
Wenn Du jetzt noch detailiert beschreibst WAS nicht funktioniert, dann schaut es sich auch vielleicht mal jemand an.
peterlustig wrote: > Quellcode aber wenn ich diesen Übernehme funktioniert dieser nicht > Richtig. Definiere 'funkioniert nicht richtig' Kriegst du Compilerfehler. Macht das Programm nicht das was du erwartest? Was erwartest du? Was passiert statt dessen?
Danke für die Antworten, die "Aufgabenstellung" lautet wie folgt: Ein Tastendruck auf dem Keyboard des PCs wird detektiert und als Charakter zur RS-232 Schnittstelle des PCs gesandt. Der Mikrocontroller liest die Daten aus und generiert eine entsprechende Antwort. Das Einlesen erfogt mittels einer Interruptroutine. Liegt ein Charakter am Eingang der Schnittstelle des Controllers an, wird das Interrupt aktiviert und durchlaufen. Der Buffer wird ausgelesen und das Eingabeflag gesetzt. In der Switch-Anweisung wird der Charakter ¨uberpr¨uft und eine entsprechende Antwort generiert. Für die Ausgabe an den PC wird die Funktion ausgabe erstellt. Diese schreibt jeden Charakter des Antwortsatzes auf den Buffer bis das Satzende erreicht ist. Beim Kompilieren kommt folgende Meldung: make -k all msp430-gcc -mmcu=msp430x149 -DMSP -O -o Testfile msp430-gcc: no input files make: *** [Testfile] Error 1 make: Target `all' not remade because of errors. Als Builder werden "CDT Makefilebuilder" und "Scanner Configuration Builder" verwendet. Ich muss sagen, dass ich noch nie mit C und in Eclipse programmiert habe :(
Schau dir doch mal im Makefile diese Zeile an
> msp430-gcc -mmcu=msp430x149 -DMSP -O -o Testfile
und dann sag mir: welches ist wohl das Input-File (also das *.c File)
welches vom Compiler zu übersetzen ist.
Richtig. Da ist keines. Und genau das sagt dir auch der Compiler.
Dein Problem hat nichts mit C an sich oder mit Programmierung zu tun,
sondern mit der Bedienung deiner Tools.
Und was heißt das jetzt konkret? Was muss ich genau tun, was erstellen? Sorry, ich hab echt keine Ahnung, da ich so gut wie keine Kenntnis besitze. Allerdings habe ich diesen Quellcode vorgegeben und soll es zum Laufen kriegen, fragt sich nur wie!? Benutzen tue ich Eclipse SDK und um es auf den Mikrocontroller zu schreiben Olimex MSP430 Programmer. Danke
peterlustig wrote:
> Und was heißt das jetzt konkret?
das du im Makefile in der zitierten Zeile den Namen deines .c-Files
angeben musst...
Eclipse erzeugt doch die passenden Makefiles automatisch und mit der aktuellen Version vom MSPGCC musst du eh den internen Makefile Builder benutzen. Schau mal hier: http://supachris.homeip.net/Eclipse_MSPGCC.zip
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.