funktion in define

OP #1333740
Lesenswert?

wie kann ich im folgenden Programm die Berechnung
BLOCKADRESSE  = EEPROM_ADRESSE/256;
SPEICHERZELLE = EEPROM_ADRESSE - BLOCKADRESSE*256;
in eine # define .... umsetzen ?

#include <iostream>
#include <cmath>

using namespace std;
int EEPROM_ADRESSE;
int SPEICHERZELLE;
int BLOCKADRESSE;
int BLOCK;
int TWDR;
int BASISADRESSE;


int main ()

{
    cout << "EEPROM ADRESSE EINGEBEN" << endl;
    cin >> EEPROM_ADRESSE;
    cout << endl;

    BLOCKADRESSE  = EEPROM_ADRESSE/256;
    SPEICHERZELLE = EEPROM_ADRESSE - BLOCKADRESSE*256;

    cout << "BLOCK ADRESSE  :  " << BLOCKADRESSE;
    cout << endl;
    cout << "SPEICHERZELLE  :  " << SPEICHERZELLE;
    cout << endl;

    BASISADRESSE = 0xA0  ;
    TWDR = BASISADRESSE + BLOCKADRESSE * 2 ;
    cout << TWDR;
#1333751
Lesenswert?

Ingo Laabs schrieb:
> wie kann ich im folgenden Programm die Berechnung
> BLOCKADRESSE  = EEPROM_ADRESSE/256;
> SPEICHERZELLE = EEPROM_ADRESSE - BLOCKADRESSE*256;
> in eine # define .... umsetzen ?

zuallererst solltest du dir gleich wieder abgewöhnen Variablennamen 
ausschliesslich in Grossbuchstaben zu schreiben.
Alles in Grossbuchstaben ist traditionell der Hinweis an den Leser, dass 
es sich um ein Makro handelt.
1
#define BLOCK_SIZE      256
2
#define CALC_BLOCK(X)   ((X) / BLOCK_SIZE )
3
#define CALC_ADDR(X)    ((X) % BLOCK_SIZE )
1
int main ()
2

3
{
4
    cout << "EEPROM ADRESSE EINGEBEN" << endl;
5
    cin >> EEpromAdresse ;
6
    cout << endl;
7

8
    BlockAdresse  = CALC_BLOCK( EEpromAdresse );
9
    SpeicherZelle = CALC_ADDR( EEpromAdresse );
10

11
    cout << "BLOCK ADRESSE  :  " << BlockAdresse;
12
    cout << endl;
13
    cout << "SPEICHERZELLE  :  " << SpeicherZelle;
14
    cout << endl;
15

16
    BasisAdresse = 0xA0  ;
17
    TWDR = BasisAdresse + BlockAdresse * 2 ;
18
    cout << TWDR;
19

20
   ...


1
int EEPROM_ADRESSE;
2
int SPEICHERZELLE;
3
int BLOCKADRESSE;
4
int BLOCK;
5
int TWDR;
6
int BASISADRESSE;
Seit wann gibt es denn negative Adressen? Wenn du die auf int lässt, 
wirst du vermutlich irgendwann dein blaues Wunder erleben, sobald die 
Zahlen etwas größer werden.
OP #1333756
Lesenswert?

Karl heinz Buchegger schrieb:
>
> zuallererst solltest du dir gleich wieder abgewöhnen Variablennamen
> ausschliesslich in Grossbuchstaben zu schreiben.
> Alles in Grossbuchstaben ist traditionell der Hinweis an den Leser, dass
> es sich um ein Makro handelt.
>
>

danke.... Grossbuchstaben für Variablennamen gerade abgewöhnt

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren