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

Atmega8515 - Jak poprawnie ustawić fuse bits dla zewnętrznego kwarcu 12MHz?

lawerna 05 Sie 2006 21:52 2109 18
REKLAMA
  • #1 2884381
    lawerna
    Poziom 11  
    Posty: 16
    Pomógł: 1
    Ocena: 3
    czesc wszystkim !
    robie moja pierwsza plytke i juz mi sie udalo raz zablokowac procka, wiec teraz chcialam bym sie upewnic, ze dobrze ustawiam fuse bits :D

    mam atmege8515, zewn kwarc 12mhz, uzywam ispprog oraz iccavr

    Atmega8515 - Jak poprawnie ustawić fuse bits dla zewnętrznego kwarcu 12MHz?

    aha, i jakby ktos mogl udostepnic przykladowy kod jak uruchomic wyswietlacz bylabym b.wdzieczna
  • REKLAMA
  • #2 2884441
    Pituś Bajtuś
    Poziom 28  
    Posty: 934
    Pomógł: 137
    Ocena: 10
    http://mikrokontrolery.net/avr_c_08.htm - kod dla LCD

    Bezpieczniejszy w użytkowaniu jest moduł programatora wbudowany w Bascoma - tam każda kombinajca jest dokładnie opisana i trudno ustawić nie to co chcemy.
  • #3 2884505
    lawerna
    Poziom 11  
    Posty: 16
    Pomógł: 1
    Ocena: 3
    dzieki za tak szybka odp ;]

    slyszalam wlasnie, ze dla poczatkujacych najlepszy jest bascom, ale z 2 strony mam jeszcze do napisania obsluge zegarka, przyciskow, czujniki temp i balam sie, ze z kodem sie nie zmieszcze do pamieci ;P
  • #4 2884539
    Pituś Bajtuś
    Poziom 28  
    Posty: 934
    Pomógł: 137
    Ocena: 10
    Ależ ja Ci nie każę pisać w Bascomie! Uchowaj Panie Boże! Ja tylko sugeruję wykorzystać go do ustawienia FuseBitów. Oto zrzut ekranu z programatora :
    Atmega8515 - Jak poprawnie ustawić fuse bits dla zewnętrznego kwarcu 12MHz?
    Prawda że wiadomo od razu co ustawiasz?
  • #5 2889729
    lawerna
    Poziom 11  
    Posty: 16
    Pomógł: 1
    Ocena: 3
    czesc znow :D
    nie mialam wczesniej czasu, ale wreszcie sie udalo i podpielam zewn kwarc.
    Teraz mam inny problem ;] Skorzystalam z tego programu powyzej, ale wyswietlacz w ogole nie reaguje. Wydaje mi sie, ze mam zle ustawione opoznienie. Wyczytalam z forum, ze mozna wyliczyc to z djnz, ale nie wiem jak to napisac w C.
    Moze mi ktos napisac jak to obliczyc dla 12MHz i atmega8515 ?

    wielkie dzieki

    Dodano po 2 [godziny] 43 [minuty]:

    moze mi ktos cos poradzic ?
    potrzebuje ten dzialajacy wyswietlacz na srode, by pokazac mojemu prowadzacemu :D
  • REKLAMA
  • #6 2891974
    -shadow-
    Poziom 11  
    Posty: 7
    Ocena: 1
    Witam
    Ustawić opóźnienie możesz tak jak w załączniku (plik jest napisany dla twojego uP i 12MHz), jednak proponuje sprawdzić połączenia uP <-> LCD
    W razie dalszych pytań służę pomocą...
    Załączniki:
    • delay.c (643 Bajtów) Musisz być zalogowany, aby pobrać ten załącznik.
  • #7 2892292
    lawerna
    Poziom 11  
    Posty: 16
    Pomógł: 1
    Ocena: 3
    dzieki za kod, ale to nadal nie pomoglo ;/

    mam wysiwetlacz na oddzielnej plytce, na ktorej mam tez diody i one mi reaguja na np przyciski - swieca, a lcd ma wlaczone tylko podswietlanie
  • #8 2892349
    cyberdar
    Poziom 31  
    Posty: 1465
    Pomógł: 161
    Ocena: 73
    Witam

    1. Na jakim porcie podpięty wyświetlacz ?
    2. Na jak długim kablu masz ten wyświetlacz ?

    --
    pozdrawiam
  • #9 2892363
    lawerna
    Poziom 11  
    Posty: 16
    Pomógł: 1
    Ocena: 3
    wyswietlacz mam na portcie A,
    a kabelek nie jest dlugi, moze niecale 10cm

    Dodano po 2 [minuty]:

    a tutaj jest kod
    wzielam go z forum i pozmienialam piny + obsluga przyciskow
    Załączniki:
    • lcd2.c (4.32 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #10 2892595
    -shadow-
    Poziom 11  
    Posty: 7
    Ocena: 1
    Najlepiej zamieść schemat jak masz podłączony ten wyświetlacz
  • REKLAMA
  • #11 2893742
    lawerna
    Poziom 11  
    Posty: 16
    Pomógł: 1
    Ocena: 3
    bylam na uczelni i sie okazalo, ze mialam miedzy innymi wiszace D0 i jeszcze 2 rzeczy zle przylutowane.
    Lcd na razie wyswietla tylko 8 z 16 znakow i bez 2 dolnych wierszy. Mam nadzieje, ze cos skopalam w programie, a nie np sie spalil.
    Nie pomieszalam czegos w programie ;] ?
  • REKLAMA
  • #12 2893835
    -shadow-
    Poziom 11  
    Posty: 7
    Ocena: 1
    Zamieść schemat układu (głównie chodzi o wyświetlacz) a pomoge napisać program bo ten jest napisany troche chaotycznie ;)
  • #13 2894033
    lawerna
    Poziom 11  
    Posty: 16
    Pomógł: 1
    Ocena: 3
    :D oto moj sliczny wyswietlacz. Tak jak pisalam jest on na 2 plytce razem z diodami i przyciskami. Do glownej jest podlaczony w ten sposob :
    PORTA.0 - D7
    PORTA.1 - D6
    PORTA.2 - D5
    PORTA.3 - D4
    PORTA.4 - E
    PORTA.6 - RS

    Dodano po 4 [minuty]:

    ok, jeszcze schemat ;] :

    Atmega8515 - Jak poprawnie ustawić fuse bits dla zewnętrznego kwarcu 12MHz?

    Dodano po 1 [minuty]:

    Atmega8515 - Jak poprawnie ustawić fuse bits dla zewnętrznego kwarcu 12MHz?
  • #14 2895503
    -shadow-
    Poziom 11  
    Posty: 7
    Ocena: 1
    Przeanalizowałem Twój kod i znalazłem mały błąd... a mianowicie
    
    write_command(0x20); // interfejs 4-bity, 1-linie, znak 5x7
    

    zamień na
    
    write_command(0x28);
    


    Poza tym brakuje w paru miejscach ustawiania sygnału RW wyświetlacza

    Aby ustawić kursor w odpowiednim miejscu LCD zrób tak:
    
    void GotoXY(unsigned char x, unsigned char y)
       {
         switch(y)
            {
              case 0:
                 x += 0x80;
                 break;
              case 1:
                 x += 0xC0;
                 break;
              case 2:
                 x += 0x94;
                 break;
              case 3:
                 x += 0xD4;
                 break;
            }
         write_command(x);
       }
    
  • #15 2895579
    lawerna
    Poziom 11  
    Posty: 16
    Pomógł: 1
    Ocena: 3
    tylko, ze ja mam 1x16 wiec musze mu wlasnie podac 0x20

    jezeli chodzi o RW to mam to teraz zwartego do masy i chyba nie musze go juz ustawiac ?

    wstawie ten kawalek kodu i zobacze czy bedzoe lepiej
  • #16 2896213
    lawerna
    Poziom 11  
    Posty: 16
    Pomógł: 1
    Ocena: 3
    nadal to samo wyswietla ;/
  • #17 2896256
    -shadow-
    Poziom 11  
    Posty: 7
    Ocena: 1
    lawerna napisał:
    Lcd na razie wyswietla tylko 8 z 16 znakow i bez 2 dolnych wierszy.


    Byłem święcie przekonany że masz wyświetlacz 4 wierszowy... Jeśli chodzi o wyświetlacz 1 wierszowy to żeczywiście ma być 0x20. Natomiast jeśli chodzi o RW to najczęsciej jest potrzebny do spr. bitu zajętości wyświetlacza...
    Jak możesz to podaj model i firmę tego wyświetlacza zobaczę do jego datasheet
  • #19 2899547
    lawerna
    Poziom 11  
    Posty: 16
    Pomógł: 1
    Ocena: 3
    czesc ponownie
    dostalam nowy lcd ;] tym razem mam 2x16, ale na tym moja radosc sie skonczyla, bo nadal nic nie wyswietla.
    ma ktos jakis pomysl co jest nie tak ?

Podsumowanie tematu

✨ Dyskusja dotyczy poprawnego ustawienia fuse bitów w mikrokontrolerze Atmega8515 z zewnętrznym kwarcem 12 MHz oraz problemów z uruchomieniem wyświetlacza LCD. Użytkownik korzysta z programatora ISPPROG i kompilatora ICCAVR, poszukując pewnych ustawień fuse bitów, aby uniknąć zablokowania procesora. Wskazano narzędzie Bascom jako pomocne do konfiguracji fuse bitów, choć niekoniecznie do pisania całego kodu. Problemy z wyświetlaczem obejmują brak reakcji lub wyświetlanie niepełnych znaków, co może wynikać z błędów w połączeniach lub kodzie. Podano przykładowy kod do obsługi LCD oraz sugestie dotyczące opóźnień i konfiguracji sygnałów sterujących, takich jak RW, RS i E. Użytkownik podał schemat połączeń wyświetlacza podłączonego do portu A mikrokontrolera. Zidentyfikowano błąd w kodzie inicjalizacji LCD (komenda 0x20 zamiast 0x28 dla interfejsu 4-bitowego) oraz brak obsługi sygnału RW, który w niektórych przypadkach jest zwarty do masy. Wskazano także funkcję ustawiania kursora na wyświetlaczu. Po wymianie wyświetlacza na model 2x16 problem z brakiem wyświetlania nadal występuje. Użytkownik prosi o dalsze wskazówki dotyczące konfiguracji i kodu.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA