Grrrr schrieb:
> Keine Semikola am Ende von defines!
Darum ging es nicht ( das war nur pseudo code hier im forum
MOTOR_PORT_0 = PORTD; eifnach #define davor gezogen und = zeichen weg
hab das ; vergessen)
Rolf Magnus schrieb:
> Es geht um C++? Dann:
Jop C++
Rolf Magnus schrieb:
> volatile uint8_t&
Genau Danke
Heiko schrieb:
> Schau doch mal in die avr/io.h bzw. die zu deinem Controller, da steht
> das drin. Und nein, ich weiß das nicht aus dem Kopf.
Hättest du einmal in die avr/io.h geschaut wüsstest du das es dort nicht
drin steht, wenn du nun in die I/O von dem entsprechenden
Mikrocontroller reinschaust wirst du festellen dort steh es auch nicht
drin (
).
und wenn du dann erkennst ... Ah es steht in der sfr_defs.h udn
nachgcukst siehst du:
1 | #define _SFR_IO8(io_addr) ((io_addr) + __SFR_OFFSET)
|
Tja wo io_addr steht habe ich nicht gefunden und somit dacht ich mir nur
What the f_uck ( naklar hätte ich es mir anhand dem ausrechnen können
bin auch nicht dumm, aber ich will möglcisht wenig Flash für Code
verbrauchen)
Mark .. schrieb:
> Mit 'MOTOR_PORT_0 = PORTD;' wird der aktuelle Wert von PORTD lediglich
> in der Variable MOTOR_PORT_0 gespeichert. Was Du brauchst ist ein Zeiger
> auf PORTD, die die Adresse des Ports enthält. Da die Ports alle nur 8
> Bit breit sind, reicht auch ein uint8_t * (genauso bei der Pin-Nummer).
> volatile uint8_t *MOTOR_PORT_0;
> ...
> MOTOR_PORT_0 = &PORTD;
> ...
> *MOTOR_PORT_0 = (1<<MOTOR_PIN_0) | (1<<MOTOR_PIN_2);
Ja genau Danke
Peter Dannegger schrieb:
> Cyb3r schrieb:
>> uint16_t MOTOR_PORT_0;
>
> Seit wann hat der AVR 16Bit Ports ???
Das ist absolut Latte omg darum geht es nicht zu Testzwecken sollte man
imemr mehr Speicher als eigl gebraucht benutzen und es dann Später
optimeiren, wenn man nicht genau weiß wie groß die Variable ist.
... und wenn du jetzt geschrieben hättest:
Eine AVR hat z.B. 8Bit Ports und die Variable dafür hat dannn auch 8Bit
dann wäre dein Beitrag sogar sinnvoll gewesen!!!