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

ATmega8L vs AT89C2051P: Czy program zadziała na ATmega8? Obsługa TID po I2C

VonPiter 06 Cze 2006 00:52 3853 11
REKLAMA
  • #1 2702265
    VonPiter
    Poziom 12  
    Posty: 47
    Pomógł: 2
    Ocena: 8
    Witam

    Mysle zrobic takie cudenko http://zgierzman.oz.pl/TID/. Nigdy nie bawilem sie mikrokontrolerami, ale troche programowalem w Delphi i C.
    Uklad zrobiony jest na AT89C..., a ja myslalem to zrobic na ATmega8 (mam wersje L) i w zwiazku z tym mam pytanie :
    Czy ATmege i AT89C... programuje sie tak samo, czy ten program ze strony bedzie dzialal na ATmega8 ?

    Przedewszystkim interesuje mne obsluga TID'a (wyswietlacz w Oplu) ktora odbywa sie po I2c, z reszta pewnie powoli dalbym sobie rade.

    Bardzo prosze o pomoc i odpowiedz ma moje laickie pytanie, ewentualnie w jaki sposob po I2c wyswietlic tekst na TID'zie, bo to jest moj najwiekszy problem.

    Pozdrawiam
    VonPiter
  • REKLAMA
  • #2 2702650
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    VonPiter napisał:
    Czy ATmege i AT89C... programuje sie tak samo, czy ten program ze strony bedzie dzialal na ATmega8 ?
    VonPiter
    Programują się zupełnie inaczej i czym innym.
    A wsad z jednego, na pewno nie będzie działał na drugim.
  • REKLAMA
  • #3 2703132
    VonPiter
    Poziom 12  
    Posty: 47
    Pomógł: 2
    Ocena: 8
    W takim razie np. Bascom lub C sa zupelnie rozne na AVR i '51 , czy tylko roznia sie te mikrokontrolery sposobem programowania ?
  • #4 2703362
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 299
    Różnią cię chociażby budową i liczbą wyprowadzeń.
    Jeżeli masz kod w Bascom-ie lub C na któryś z nich, to można go przerobić , tak aby współpracował z innym.
    Nie zadziała jednak program w BIN lub HEX ( tzw. wsad) skompilowany na jeden z procesorów, jeżeli wgrasz go do innego typu uC.
  • REKLAMA
  • #8 2706348
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 299
    Myślę, że można bez problemów ten program przerobić.
    Będzie jednak kilka problemów.
    1. Maksymalny zegar dla układów serii L to chyba 8MHz, chociaż mogę się mylić. W oryginale uC chodzi na 12MHz.
    2. Trzeba zmienić konfigurację TIMER0 i TIMER1 które w AVR Bascom sa "trochę" inne.

    Ale w ogóle sądzę, że jest to do zrobienia.
  • REKLAMA
  • #9 2706583
    VonPiter
    Poziom 12  
    Posty: 47
    Pomógł: 2
    Ocena: 8
    Zgadza sie wersja L ma max zegar 8MHz.
    W sumie chodzi mi przedewszystkim o komunikacje I2c z wyswietlaczem. Znalazlem na forum troche info o I2c, ale w komunikacji z pamiecia, czujnikami temp itp. Nie bardzo wiem jak napisac procedurke wysylania danych na wyswietlacz po I2c.
  • #10 2708377
    filip_gd
    Poziom 12  
    Posty: 103
    Pomógł: 1
    Ocena: 2
    Hmm a skąd ty weźmiesz LCD który ma i2c?
    Jak już to podłącza sie go np przez PCF8574 ...
  • #11 2708912
    VonPiter
    Poziom 12  
    Posty: 47
    Pomógł: 2
    Ocena: 8
    Nigdzie nie napisalem, ze mam LCD pod I2c. W Oplu Astrze '95 jest wyswietlacz TID ktory wyswietla godzine, date (gdy radio jest wylaczone), przy wlaczonym radju stacje, RDS, oraz temperature. TID sterowany jest przez I2c.
  • #12 2708953
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 299
    No chyba do tego służy ta biblioteka "ice" w oryginalnym kodzie.

Podsumowanie tematu

✨ Programowanie mikrokontrolerów ATmega8L i AT89C2051P różni się zasadniczo, zarówno pod względem architektury, jak i sposobu programowania, co uniemożliwia bezpośrednie uruchomienie wsadu (plików BIN lub HEX) przeznaczonych dla jednego typu na drugim. Kod źródłowy napisany w Bascom lub C można jednak przerobić, dostosowując go do specyfiki innego mikrokontrolera, uwzględniając różnice w budowie, liczbie wyprowadzeń oraz konfiguracji timerów. W przypadku ATmega8L należy zwrócić uwagę na maksymalną częstotliwość taktowania (do 8 MHz) w porównaniu do oryginalnego 12 MHz w układzie AT89C. Głównym problemem pozostaje implementacja komunikacji I2C z wyświetlaczem TID stosowanym w Oplu Astrze '95, który sterowany jest właśnie przez I2C, a nie standardowy LCD z interfejsem I2C. W oryginalnym kodzie znajduje się biblioteka "ice" służąca do obsługi tej komunikacji. Konieczne jest napisanie odpowiedniej procedury wysyłania danych po I2C do wyświetlacza TID, co wymaga znajomości protokołu i specyfiki tego urządzenia.
Wygenerowane przez model językowy.
REKLAMA