- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 4 von 4

Thema: Probleme mit Portzuweisung Mega8

  1. #1
    Jens_
    Gast

    Probleme mit Portzuweisung Mega8

    Anzeige

    Praxistest und DIY Projekte
    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

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    schick doch mal ne art anschlussbelegung deiner ports (alle) und dein programm plz.

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Jens_
    Gast
    Hallo,

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

    Code:
    $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

    Gruß
    Jens

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    36
    Beiträge
    1.614
    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
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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

Labornetzteil AliExpress