Port in 2 Byte aufteilen-Rechenoperation ausführen-Auf anderem Port ausgeben(Binär)

OP #2705795
Lesenswert?

Hallo,

ich möchte einen kleinen Hardware Taschenrechner (später evtl. auch mini 
CPU) mit einem ATmega32 bauen.

Die Programmiersprache soll C sein!

Hat jemand eine Idee wie ich einen Port des ATmegas in 2 Byte jeweils 4 
Bit aufteilen kann und evtl. diese zusammenrechnen und an einem anderen 
Port in 4 Bit wieder ausgeben?

Wenn es nicht anders geht, müsste ich die Zahlen zuerst in Dezimal 
umwandeln, rechnen und wieder in Binär umwandeln!


Mit freundlichen Grüßen
Robin Wenert
OP #2705811
Lesenswert?

Also ich möchte einen PORT als 2 BCD eingänge verwenden
(z.B. PORTC.0  PORTC.1  PORTC.2  PORTC.3  PORTC.4  PORTC.5  PORTC.6 
PORTC.7
         8        4        2        1        8        4        2 
1
         ___________________________ 
__________________________
                 INPUT 1                                 INPUT 2

INPUT 1 + INPUT 2 = OUTPUT


z.B.    PORTD.0  PORTD.1  PORTD.2  PORTD.3
            8       4       2        1
            ________________________
                    OUTPUT



Beispiel:       8 4 2 1
INPUT 1:        0 1 0 1
INPUT 2:        0 0 1 0
++++++++
OUTPUT :        0 1 1 1
Gast #2705880
Lesenswert?

Wegstaben Verbuchsler schrieb:
> Robin Wenert schrieb:
>> (z.B. PORTC.0  PORTC.1  PORTC.2  PORTC.3  PORTC.4  PORTC.5  PORTC.6
>> PORTC.7
>>          8        4        2        1        8        4        2
>> 1
>
> ich kenne eher die "gespiegelte" Schreibweise, d.h. das niederwertigste
> Bit ist ganz rechts (PORTC.0), und das höchstwertigste ist ganz links
> (PortC.7)
>
> Ist das in Bascom "anders rum"?

Nein. Der TS kennt sich offensichtlich nicht nur mit "C" nicht aus.
Gast #2705954
Lesenswert?

Robin Wenert schrieb:
> ich möchte einen kleinen Hardware Taschenrechner (später evtl. auch mini
> CPU) mit einem ATmega32 bauen.
>
> Die Programmiersprache soll C sein!


Ah, ja.

Du willst einen kleinen Taschenrechner basteln, hast aber bislang 
keinerlei Plan, wie man sowas macht, aber du weißt schon felsenfest, daß 
es mit einem ATmega32 und in C sein soll.

Klasse, solche genialen Entwickler braucht das Land.

Mein Rat:
Lerne erstmal, wie man Tasten richtig abfragt, dann wie man ein Display 
ansteuert und dann, was man an Datenformaten braucht, um die bei 
Taschenrechnern übliche Stellenanzahl von 8..10 gültigen Stellen nebst 
Exponent im Bereich -99 bis +99 bieten zu können.

Und dann sieh dich nach einem Controller um, dessen Toolchain die 
benötigten Datenformate realisieren kann. Bei vielen Implementationen 
wird nämlich stillschweigend single anstelle double verwendet und man 
wundert sich, daß ab der 6. Ziffer nur noch Müll herauskommt.

SO!


W.S.
Gast #2709925
Lesenswert?

Soviel ich weiß, gibt es in C keinen Config-Befehl. Mach es doch erst 
mal
in Bascom, bevor Du auf C umsteigst. Ich denke, daß es einfacher ist, 
dann
einen funktionierenden Algorithmus in die neue Sprache zu übersetzen, 
als
2 Stolpersteine zu haben: Kein Algorithmus und keine Kenntnis der Syntax
der neuen Sprache.

MfG Paul

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