Forum: Mikrocontroller und Digitale Elektronik warning: large integer implicitly truncated to unsigned type


von Lokus P. (derschatten)


Lesenswert?

Warum meckert der Compiler da?
1
PORTD=~(1<<7);

Von Port 1 bis 6 passt alles.

von Franko P. (sgssn)


Lesenswert?

Hi

das ist eine Warnung, dass du möglicherweise versehntlich aus einer 
positiven (8-Bit-)Zahl eine negative machst.
Was ist das für ein Compiler ? PIC ?

Gerhard

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

a) Welcher Compiler?
b) Der Compiler wird in (signed) int rechnen, du weisst das ganze einem 
(unsined) "byte" zu.

von Lokus P. (derschatten)


Lesenswert?

Läubi .. schrieb:
> a) Welcher Compiler?
> b) Der Compiler wird in (signed) int rechnen, du weisst das ganze einem
> (unsined) "byte" zu.

AVR Studio
Wie lös ich denn das Problem?

Die schreibweise stimmt doch wenn ich einen Port-Pin auf LOW setzen 
möchte und alle anderen Ausgänge wieder auf HIGH.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Am besten füge einfach einen passenden cast hinzu.

von Lokus P. (derschatten)


Lesenswert?

Wie caste ich den die Ausgabe richtig?

von Marcus (Gast)


Lesenswert?

PORTD=(uint8_t)~(1u<<7);

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
Noch kein Account? Hier anmelden.