Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bascom Atmega32 - Czarne kostki na wyświetlaczu Atmega Bascom

09 Sty 2014 23:06 3042 15
  • Poziom 23  
    Witam
    Piszę program w Bascomie na Atmega32 do sterowania ogrzewaniem w warsztacie i mam problem. Jest zegar RTC, zewnętrzny Ram, Timer, Menu i to wszystko działa bez zarzutu - dokładnie tak jak bym chciał. Chciałem dołożyć czujnik temperatury i wykorzystać do tego celu wejście ADC. Problem pojawia się w momencie jak w podmenu "Start_webasto" dodaję linijkę U_wy = Fusing(v , "#.&"). Atmega zaraz po starcie powinna wyświetlić zegar, a pokazuje cały wyświetlacz czarnych kwadracików. Kompilator nie wywala żadnego błędu. Bez tej linijki wszystko działa. Co z nią jest nie tak ? Straciłem na to pół dnia i nic.
    Ustawienia fusebitów lFuse = 0xFF hFuse=0xD9

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
  • Poziom 17  
    Może spróbuj wydłużyć stringa U_wy. Chyba że nie oczekujesz wartości powyżej 9.9.
  • Poziom 23  
    Próbowałem i nic to nie daje.Ale zastanawia mnie to, że po dodaniu linijki w podprogramie atmega nawet nie startuje. Gdyby się to działo w momencie jak wchodzę w podprogram to jeszcze bym to zrozumiał, ale ona nawet nie dochodzi do tego miejsca
  • Poziom 37  
    Witam !
    Czy linie:
    Config Scl = Portc.0
    Config Sda = Portc.1
    masz "podciągnięte" do plusa zasilania rezystorami ?, jeśli nie to zrób to, daj dwa rezystory 4,7k.
    Pozdrawiam. Stefan
  • Poziom 23  
    Tak, są podciągnięte.
    Problem się robi po dodaniu tej jednej linijki. Wydaje mi się że to będzie problem ze zmiennymi.

    Dodano po 10 [minuty]:

    Wystarczy że np. usunę całe menu ustawiania zegara i wtedy adc wyświetla - ale przecież jakoś ten zegar muszę ustawiać.
    Podobnie ma się sytuacja jak zostawię ustawianie zegara a usunę linijki odpowiadające za wpis do pamięci zewnętrznej. Na jednej lini SCL i SDA wiszą mi 2 układy PCF8583 i pamięć 24C02. Czy musi być gdzieś podane co jest master a co slave ?
  • Poziom 37  
    Na porcie C jest Jtag, wyłączyłeś go ?
  • Poziom 23  
    Tak, na 100% ( zerknij na fusebity ). Tak jak napisałem wcześniej dodanie zewnętrznego epromu 24c02 robi problem - pamięci podmieniałem i dalej to samo

    Bascom Atmega32 - Czarne kostki na wyświetlaczu Atmega Bascom

    Dodano po 5 [minuty]:

    może źle zainicjowałem I²C ? ale przecież PCF8583 chodzi, a adresy zapisu i odczytu z epromu są wg. mnie dobrze
  • Poziom 37  
    ziguś napisał:
    Tak, na 100% ( zerknij na fusebity ). Tak jak napisałem wcześniej dodanie zewnętrznego epromu 24c02 robi problem - pamięci podmieniałem i dalej to samo

    Bascom Atmega32 - Czarne kostki na wyświetlaczu Atmega Bascom

    Dodano po 5 [minuty]:

    może źle zainicjowałem I²C

    Nie znam tego.
    ATmega32 fabrycznie nowy ma włączony Jtag, ustaw stan fuse bita na przeciwny od ustawienia fabrycznego.
  • Poziom 28  
    Witam.

    Po wgraniu programu do Bascoma i przeglądając go zauważyłem błędy:

    Config Pinc.0 = Input powinno być Config Portc.0 = Input
    I pozostałe Configi.
    Pinc.0 stosujemy przy odczycie danego pinu np. If pinc.0 = 0 then ........

    Następnie linia nr 213 przed (Wyświetl zegar:) zawiera instrukcję Return ale ta część programu nie zawiera żadnego podprogramu, powinno być zwykłe END.

    Chyba, że źle przeglądałem.

    A może tak sformatuj:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
  • Poziom 23  
    yokoon napisał:
    Po wgraniu programu do Bascoma i przeglądając go zauważyłem błędy:

    Config Pinc.0 = Input powinno być Config Portc.0 = Input
    I pozostałe Configi.
    Pinc.0 stosujemy przy odczycie danego pinu np. If pinc.0 = 0 then ........

    Zobacz co na to bascomowy help:
    Bascom Atmega32 - Czarne kostki na wyświetlaczu Atmega Bascom

    Niech autor spróbuje zwiększyć rozmiary stosu. Ale to raczej tylko obchodzenie problemu niż jego rozwiązanie. Tak napisany program prędzej czy później zacznie sprawiać problemy. Radzę się autorowi zastanowić nad tym jak zdecydowanie uprościć i zoptymalizować ten kod.
  • Poziom 23  
    Nawet kopiując podprogramy jeden do drugiego tak że soft zajmuje 98 % pamięci wszystko działa. Problem jest jak dopiszę obsugę zewnętrznego epromu - mysle że tutaj jest problem - możecie na to zerknąć ? Problemy z config pin/port już przerabiałem. Jak wyjście ->config port jak wejście > config pin.
  • Poziom 17  
    Kolego a dlaczego nie korzystasz z wewnętrznej pamięci EEPROM?
  • Poziom 23  
    Proszę źle nie odebrać mojej odpowiedzi ale wolałbym ( chciałbym ) zewnętrzną
  • Poziom 17  
    Jak tam chcesz ale dla mnie to jak jazda pustym samochodem ciężarowym z załadowaną przyczepą. Próbowałeś zwiększać stosy?
  • Poziom 23  
    Straciłem 2 dni przez niedopatrzenie. Problem się rozwiązał, wszystko śmiga aż miło. Wstyd się przyznać ale sam zrobiłem błąd. Plik wgrywałem programem Avrdude gui v0.2.0 i na samej górze w okienku -p Device: cały czas było zaznaczone Atmega8, a powinno być .... :D Atmega32. Zmieniłem i wszystko działa :angel:
    BARDZO WSZYSTKIM DZIĘKUJĘ ZA POMOC i przepraszam że musieliście się głowić nad czymś co powinienem od razu zauważyć.

    Bascom Atmega32 - Czarne kostki na wyświetlaczu Atmega Bascom