PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Portzuweisung Mega8



Jens_
09.11.2004, 11:26
Hallo miteinander,

für mein aktuelles Projekt, eine LED-Uhr mit einem Mega8,
(die Hardware ist bereits fertig) brauche ich insgesamt 18 Ports als Ausgang. Die Hardware ist soweit fertig, nur die Software (1.11.7.4) macht Probleme.
Im Simulator funktioniert das Portschalten mit Bitmasken wie gewünscht.
In der Schaltung jedoch nicht.
Nun stellt sich mir bei der grundsätzlichen Fehlersuche die Frage, ob es an den Einstellungen im cfg-File liegen kann, denn es müssen unter Options ja die Ports für I2C, 1-Wire, SPI und LCD festgelegt werden, obwohl ich diese anderweitig nutze.

Oder bin ich da aufm Holzweg ](*,)

Gruß

Jens

x-ryder
09.11.2004, 12:22
schick doch mal ne art anschlussbelegung deiner ports (alle) und dein programm plz.

Martin

Jens_
09.11.2004, 13:55
Hallo,

anbei der Code. Ist für den Simulator etwas modifiziert.



$regfile = "M8def.dat"
$crystal = 16000000

Config Timer0 = Timer , Prescale = 1 'timer0 nur für Simulator ansonsten timer1 mit prescale 256
On timer0 timer_sub

DDRB = $B11111111 'zeigt die stunden von 0-5
DDRC = $B11111111 'zeigt die stunden von 6-11
DDRD = $B00011111 ' viertelstunden, pin d5-d6 zum einstellen
PortB = $B11111111
PortC = $B11111111
PortD = $B11111111 'pullups

sekundenblinker alias portd.4 'Portd.4 = PIN 6

dim sekunde as word
dim quarter as byte '0, 15, 30, 45 Minuten
dim Stunde as byte

Enable Timer0
Enable Interrupts

Do

if Stunde < 6 then
portb = lookup(Stunde , stunden_data)
portc = 255
endif

if Stunde >= 6 then
portc = lookup(Stunde , stunden_data)
portb = 255
endif

portd = lookup(quarter , quarter_data)

Loop

Timer_sub:
incr sekunde

if sekunde = 6 then 'eigentlich 900 aber zum simulieren nur mit 6
sekunde = 0
incr quarter
end if

if quarter = 4 then
quarter = 0
incr STUNDE
end if

if Stunde = 12 then
Stunde = 0
end if

toggle sekundenblinker 'Portd.4 = PIN 6

Return

Quarter_data:
Data &B11111110 'voll Portd.0 = PIN 2
Data &B11111101 'viertelnach Portd.1 = PIN 3
Data &B11111011 'halb Portd.2 = PIN 4
Data &B11110111 'viertelvor Portd.3 = PIN 5

Stunden_data: '0-5 ist portb, 6-11 ist portc
Data &B11111110 '0 PortB.0 = PIN 14
Data &B11111101 '1 PortB.1 = PIN 15
Data &B11111011 '2 PortB.2 = PIN 16
Data &B11110111 '3 PortB.3 = PIN 17
Data &B11101111 '4 PortB.4 = PIN 18
Data &B11011111 '5 PortB.5 = PIN 19
Data &B11111110 '6 PortC.0 = PIN 23
Data &B11111101 '7 PortC.1 = PIN 24
Data &B11111011 '8 PortC.2 = PIN 25
Data &B11110111 '9 PortC.3 = PIN 26
Data &B11101111 '10 PortC.4 = PIN 27
Data &B11011111 '11 PortC.5 = PIN 28


Das ganze soll eine Uhr werden mit kreisförmig angeordneten 12 LED´s für die Stundenanzeige und 4 LED´s für die Viertelstunden.

Wie gesagt, in der Schaltung tut sich bei den LED´s bis auf den Sekundenblinker nichts :-k

Gruß
Jens

x-ryder
09.11.2004, 14:06
du könntest das mal ausprobieren mit config portx=output/input und das mit den pullups würd ich wenn nötig extern machen aber sonst kann ich so auf die schnelle auch nix erkennen