Hallo
Ich möchte neu mit Eclipse + WinAvr arbeiten und habe mir eine Toolchain
mit aktuellen Versionen soweit erfolgreich eingerichtet:
Eclipse Version: 3.4.1 (eclipse-cpp-ganymede-SR1-win32.zip)
Plugin avreclipse-2.3.0.20080915BETA1
WinAVR-20080610 + avr-libc-bin-1.6-20080228
Compilieren und programmieren der CPU funktioniert vom Eclipse aus
prima.
Aber nun möchte ich meine bestehenden Projekte von AvrStudio und
AtmanAVR auf Eclipse zügeln, bring aber die Statements mit inline-asm
nicht durch den Compiler.
Selbst ein ganz normales asm volatile("nop" ::); geht nicht!
Bin kurz vor dem verzweifeln, hat jemand eine Idee was ich falsch machen
könnte.
Ein kleines Beispiel Programm das nicht compiliert: (Der "nop" macht
natürlich an dieser Stelle keinen Sinn, es geht nur darum, das Problem
zu reproduzieren.)
1 | #include <avr/io.h>
|
2 | #include <util/delay.h>
|
3 |
|
4 | #define UP 0
|
5 | #define DN 1
|
6 |
|
7 | void delay_ms(unsigned int ms)
|
8 | {
|
9 | while(ms--)
|
10 | {
|
11 | asm("nop" ::); // ==> Error
|
12 | _delay_ms(1);
|
13 | }
|
14 | }
|
15 |
|
16 | // Knight Rider's KIT - Led Lauflicht
|
17 | int main( void )
|
18 | {
|
19 | unsigned char ledval = 1;
|
20 | unsigned char dir = UP;
|
21 | DDRD |= (0xFF);
|
22 | while (1)
|
23 | {
|
24 | PORTD = ~ledval;
|
25 | if (dir==UP)
|
26 | ledval = ledval<<1;
|
27 | else
|
28 | ledval = ledval>>1;
|
29 | if (ledval==1)
|
30 | dir = UP;
|
31 | if (ledval==0x80)
|
32 | dir = DN;
|
33 | delay_ms(150);
|
34 | }
|
35 | }
|
../main.c: In function 'delay_ms':
../main.c:12: warning: implicit declaration of function 'asm'
../main.c:12: error: expected ')' before ':' token
Ich bin dankbar für jede Hilfe oder Hinweis