Es weihnachtet wieder einmal und ich habe mein 16x10 LED Display
vorgekramt.
ATmega128
es werden 2x8Bit (PortA linke hälfte, PORTC rechte hälfte)) breit pro
Zeile dargestellt und das alles 10x (PORTD mit 74HCT42 0-9
decodiert)nach unten widerholt.(PORTD=10->alles aus)
Seinerzeit(tm) hatte ich das mit den Fastavr-"Compiler" (ähnlich BASCOM)
zusammengebastelt und ging eigentlich auch ganz gut.
Durch eine damalige Unachtsamkeit beim Routing sind jedoch alle Portbits
vom PORTA und PORTC vertauscht.
aus PA.0->PA.7 wurde PA.7->PA.0 usw. schnief
Ich habe das damals softwaremäßig so gelöst:
1 | Function umkehr(n As Byte) As Byte
|
2 | Local m As Byte
|
3 | m = 0
|
4 | If n.0 Then : Set m.7 : End If
|
5 | If n.1 Then : Set m.6 : End If
|
6 | If n.2 Then : Set m.5 : End If
|
7 | If n.3 Then : Set m.4 : End If
|
8 | If n.4 Then : Set m.3 : End If
|
9 | If n.5 Then : Set m.2 : End If
|
10 | If n.6 Then : Set m.1 : End If
|
11 | If n.7 Then : Set m.0 : End If
|
12 | Return m
|
13 | End Function
|
Ich bin nun dabei ,das ganze nach C zu portieren, weil ich dieses
FASTAVR nicht mehr finde hust, stehe aber vor dem gleichen
Hardwareproblem, denn hier hat sich ja nichts geändert.
Geht das in C etwas eleganter zu lösen?
Danke
Axelr.