-
        
+ Antworten
Ergebnis 1 bis 7 von 7

Thema: Variablendefinition mit char anstatt int ?!

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.01.2004
    Ort
    Waldenbuch
    Alter
    45
    Beiträge
    63

    Variablendefinition mit char anstatt int ?!

    Hallo Kollegen,

    ich sehe immer wieder eine Variablendefenition mit "char" in der aber nur Zahlen abgespeichert werden. Warum nehmt Ihr/mann denn nicht "int"?

    Hab ich da was nicht kapiert oder der Programmierer?

    volatile char count;

    SIGNAL (SIG_OVERFLOW1) {
    if (count == 1) {
    PORTB = 0xFF;
    count--;
    return;
    }
    if (count == 0) {
    PORTB = 0x00;
    count++;
    return;
    }


    Gruss
    Bernd

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Ort
    Untersöchering(Bayern,Alpenvorland)
    Alter
    29
    Beiträge
    215
    unsigned char 8Bit 0 .. 255
    char, signed char 8Bit -128 .. 127
    unsigned short, unsigned short int 16Bit 0 .. 65535
    short, signed short, short int 16Bit -32768 .. 32767
    unsigned int 16Bit 0 .. 65535

    Speicherverbrauch ist weniger.
    Gruß Muraad

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Auf 8-Bit Controller ist einfach der Code schneller und kleiner wenn man Byte Variablen benutzt ( natürlich nur da wo es reicht ). 16-Bit Werte werden über zwei Register/Speicherzellen aufgeteilt, so dass die auch erst einzeln wieder geladen werden müssen...
    Bei 16 oder mehr Bit Mikrocontrollern sieht das natürlich wieder anders aus, da kann es effektiver sein Integer Werte zu benutzen.

    MfG Kjion

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    23.05.2004
    Ort
    Untersöchering(Bayern,Alpenvorland)
    Alter
    29
    Beiträge
    215
    Kennt avr-gcc den Datentyp bool eigentlich? Oder muss ich sie mir durch Bit Strukturen selber machen? Wenn ja muss bei der deklarierung _bool oder bool geschrieben werden. Spezielle #include bei avr-gcc?
    Gruß Muraad

  5. #5
    Gast
    mal mit stdbool.h probieren :>

  6. #6
    Gast
    char oder int ist bei den ATMegas egal, da sie intern mit 16 Bit arbeiten.

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Nein!
    Sie haben zwar einen 16-Bit Adressbus, sind aber ansonsten 8-Bit Prozessoren mit 8-Bit Registern usw. ...

    MfG Kjion

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •