Forum: Mikrocontroller und Digitale Elektronik ccs - kein Unterschied zwischen signed und unsigned


von asrael1991 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, ich habe vor kurzem das Programmieren mit dem PIC 16F877A 
angefangen, und bin noch ziemlich unerfahren, was das Programmieren 
angeht.
Ich hoffe in diesem Forum Hilfe zu finden.

Ich habe folgendes Problem und zwar:
Im angehängten CCS C Code lass ich die Variable "a" einfach nur um den 
Wert 1 hochzählen und gebe es dann am Hyper Terminal aus.

Jedoch ist es egal ob ich den Datentyp "unsigned int" oder "signed int" 
oder "int" verwende, die Variable "a" zählt immer nur bis 127 und spring 
dann auf -128, und dann beginnt das Spiel von vorne!

Ich programmiere im MPLAB mit dem CCS C Compiler und benutz zum Brennen 
das PICKIT2.

Bitte um Antwort :)

von xfr (Gast)


Lesenswert?

Du musst printf sagen, wie die Bits interpretiert werden sollen. Für 
unsigned also:
1
printf("%u\r",a);

von (prx) A. K. (prx)


Lesenswert?

CCS definiert "int" mit 8 Bits. Das widerspricht zwar dem C Standard, 
ist aber schön effizient.

In printf nimmt "%d" an, dass es ein "int" ist, gibt also mit Vorzeichen 
aus.

von asrael1991 (Gast)


Lesenswert?

YEAH hat geklappt.
Danke für die schnelle Antwort :)

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.