Hallo zusammen,
hier etwas eigenartiges. Ich habe ein Array wie dieses:
1 | const uint steps[] = {7,5,2,0};
|
2 |
|
3 | signed int *cur_step;
|
4 | signed int X_step;
|
Wenn ich jetzt cur_step auf X_step zeigen lasse, kann ich darüber nicht
auf Arrayelemente zugreifen:
1 | cur_step = &X_step;
|
2 | PORTB = _BV(steps[*cur_step]) | _BV(cur_mot); // funktioniert nicht
|
Als Work-around habe ich diese Lösung:
1 | switch(*cur_step)
|
2 | {
|
3 | case 0: PORTB = _BV(steps[0]) | _BV(cur_mot);
|
4 | break;
|
5 | case 1: PORTB = _BV(steps[1]) | _BV(cur_mot);
|
6 | break;
|
7 | //...
|
Kann mir jemand sagen, warum die erste Variante nicht funktioniert? Der
uC hat die Zeile einfach ignoriert :-/
Ich glaube auch, dass die zweite Variante speichersparender ist, oder?
Um eine Aufklärung dankbar,
Sascha