Hallo,
mit Assembler habe ich schon einiges programmiert, nun wollte ich mir
mal anschauen welche vor und Nachteile C mit sich bringt. Allerdings bin
ich hier (zu meiner Verwunderung nicht weit gekommen). Hier mal ein
Beispiel:
1 | #include <avr/io.h>
|
2 | #define TAKT 14745600UL
|
3 |
|
4 | void main (void)
|
5 | {
|
6 | DDRC = 255;
|
7 | PORTC = 0;
|
8 |
|
9 |
|
10 | while(1)
|
11 | {
|
12 | warte16( );
|
13 | PORTC++;
|
14 | }
|
15 | }
|
16 |
|
17 | void warte16(void)
|
18 | {
|
19 | unsigned long i;
|
20 | for (i = 0; i < 200000; i++);
|
21 | }
|
dieser kleine Dualzähler funktioniert so wunderbar, wenn ich allerdings
erst PORTC++; und dann warte16( ); aufrufe, leuchten alle LED´s an Port
c und es scheint nichts mehr gezählt zu werden.
Solche merkwürdigen Fehler (oder steckt da eine Logik dahinter - ich
hoffe es) gab es noch einige, wodurch ich lieber wieder zu Assembler
zurückkehre, andererseits kann ich mir auch nicht vorstellen, das C so
voller Probleme steckt, wie es mir im ersten Moment erscheint.
Vielleicht kann mir ja jemand mein obiges Problemchen erläutern, so dass
ich doch noch Lust auf C bekomme!
Würde mich freuen...
grüße
Andreas