logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Attiny 2313-20PU problem z pamięcią EEPROM, BASCOM

kalzedon 07 Lip 2010 15:34 2275 4
REKLAMA
  • #1 8270473
    kalzedon
    Poziom 10  
    Witam

    Jestem początkującym więc wybaczcie jakieś niedociągnięcia.

    Gdzie jest problem :
    Kupiłem książkę i płytkę z układem - Mikrokontrolery dla początkujących.
    Jest to kurs programowania w BASCOMIE.
    W rozdziale opisującym programowanie EEPROM nie jestem w stanie zaprogramować EEPROMa.

    Sprzęt :
    1) Programator STK500 po USB
    2) Procesor jak w temacie

    Błąd
    Chciałem z poziomu programu zapisać zmienna do EEPROMa - też przykład z książki (uprościłem aby nie śmiecić ) - przy próbie zapisu do EEPROMa (tak mi się wydaje) układ się resetuje, ponieważ licznik zaczyna zliczać od początku. Próba odczytania kończy się tak samo.

    FUSE bity
    EESAVE = 1
    SPIEN = 1

    SOFT:
    1) AVR STIDIO - 4.18
    2) BASCOM - 1.11.8.1

    Pytanie
    Co robię źle że nie działa mi zapisanie zmiennej do EEPROM w trakcie działania programu.

    Pozostałe tematy/programy do tej pory działały bez problemów

    Proszę o odpowiedz od osób posiadających ten sam programator i nie zamykanie pod tytułem u mnie działa jak to było z 1 postem. Gdzie rozwiązanie było dodanie zmiennej $data i $eepromhex do programu a nie wgranie innym programatorem.

    
    $eeprom
    Zmienna:
    Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144
    $data
    $eepromhex
    
    Config Portb = 255 : Portb = 255
    Config Portd = &B1111100 : Portd = 127
    
    Config Timer0 = Timer , Prescale = 64
    Enable Interrupts : Enable Timer0 :
    On Timer0 Co4ms
    Dim Mux As Byte
    Dim Eprzmie As Eram Byte At 10
    Dim Licznik As Byte
    Dim Ekran As Byte
    Dim Jedn As Byte , Dzies As Byte , Jedn_o As Byte , Dzies_o As Byte
    Ekran = 0
    Licznik = 0
    
    Do : Loop : End
    
    Co4ms:
      Incr Licznik
      If Licznik = 250 Then                 ' + 1 sek
        Licznik = 0
        Incr Ekran
        If Ekran = 99 Then Ekran = 0
      End If
     Debounce Pind.0 , 0 , Wreepr
     Debounce Pind.1 , 0 , Reeepr
    
       Incr Mux : If Mux = 4 Then Mux = 0 : Portd = &B1111111
     Select Case Mux
       Case 0:
         Jedn = Makebcd(ekran)
         Jedn_o = Jedn And &B00001111
         Portb = Lookup(jedn_o , Tabela)
         Portd.3 = 0
       Case 1:
         Dzies = Makebcd(ekran)
         Dzies_o = Dzies And &B11110000
         Shift Dzies_o , Right , 4
         Portb = Lookup(dzies_o , Tabela)
         Portd.4 = 0
    
     End Select
    Return
    
    Wreepr:
      Eprzmie = Ekran
    Return
    
    Reeepr:
      Ekran = Eprzmie
    Return
    
    Tabela:
    Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144 
    
  • REKLAMA
  • #2 8270605
    sp3ots
    Poziom 38  
    Witam !
    Twój program można wgrać do procesora, mi się to udało bez problemu, programatorem AVR910.
    Pamięć eeprom też jest zapisana.
    Zawartość odczytana z eepromu:
    
    :020000020000FC
    :10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
    :10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
    :10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
    :10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
    :10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
    :10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
    :10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
    :10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
    :00000001FF
    

    Dodałem dwie linie do Twojego kodu:
    $regfile = "attiny2313.DAT"
    $crystal = 1000000
    Pozdrawiam. Stefan
  • REKLAMA
  • #3 8270647
    kalzedon
    Poziom 10  
    Tak wczytanie do eeproma dzięki $eepromhex już działa poprawnie - dzięki.

    Ale dlaczego po próbie zapisu i odczytu zmiennej ( debounce dla pind.0 i 1)
    Układ się resetuje - tak mniemam bo licznik "ekran" nagle liczy od 0.

    Próbowałem wpisywać poprzez readeeprom i writeeeprom i to samo restart.

    Coś źle robię ?

    Pozdr.
    Rafał
  • REKLAMA
  • #4 8270703
    sp3ots
    Poziom 38  
    Ja nie sprawdzałem Twojego projektu pod względem działania, tylko czy działa
    zapis do eepromu w czasie programowania procesora.
  • #5 8270808
    kalzedon
    Poziom 10  
    Jeśli ktoś z forumowiczów będzie w stanie mi pomóc będę wdzięczny.

    Tak czy inaczej szukam sam gdzie jest babol.

    Pozdr.
    Rafał
REKLAMA