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

Bascom AVR - Jak obsłużyć kilku modułów poprzez I2C- czy w ogóle da się ?

RomanSkok 26 Lut 2015 22:02 2181 8
  • #1 14481546
    RomanSkok
    Poziom 10  
    BASCOM AVR : Do obsługi wyświetlacza LCD 16 x 2 używam bibliotekę "lcd_i2c_v2.lib". Jeśli chciałbym zastosować jeszcze inne moduły używające I2C
    np. Moduł dokładnego zegaru czasu RTC DS3231 , to jak to wszystko konfigurować.
    Np dla obsługi LCD mam:

    Config SCL = PortD.5
    Config SDA= PortD.6

    i co teraz zrobić jeśli w/w zegar chodzi na portach np.
    SCL=portD.2
    SDA=portD.3
  • #2 14481602
    Futrzaczek
    VIP Zasłużony dla elektroda
    Urządzenia podpięte do szyny I2C mają swoje adresy, dzięki którym można je wywoływać.
    Poczytaj, czy urządzenia które chcesz podpiąć u siebie mają różne adresy. Jeśli tak, możesz je spiąć równolegle.

    Możesz też przekonfigurowywać obsługę I2C na inne wyprowadzenia mikrokontrolera, tylko łatwo jest się pogubić przy kilku układach.
  • #3 14483142
    RomanSkok
    Poziom 10  
    Problem w tym, że biblioteka tylko raz odwołuje się do Config .... a potem niejawnie odczytuje dane i wysyła je do LCD. Jeśli teraz moduł zegara ma inny adres, to nie wiem jak naprzemiennie wywoływać zegar i potem pokazywać dane na wyświetlaczu LCD. Wygląda mi na, że nie można, stosując bibliotekę "lcd_i2c_v2.lib", używać innych urządzeń poprzez I2C.
    Mimo to będę starał się jakoś spróbować.
  • #4 14484222
    Konto nie istnieje
    Konto nie istnieje  
  • #5 14485932
    RomanSkok
    Poziom 10  
    Będę musiał spróbować wobec tego na tej samej linii. Moje wątpliwości wynikają z tego, że są standardowe procedury w Bascom typu I2cInit,I2cstart , I2cwbyte, I2crbyte,I2cstop które w
    przypadku zegara mogę zastosować. Natomiast do obsługi LCD zastosowana biblioteka niejawnie ( program napisany w asemblerze) odczytuje dane i wysyła je do LCD.
  • #6 14486615
    Konto nie istnieje
    Konto nie istnieje  
  • #7 14488987
    piotr411
    Poziom 22  
    niveasoft napisał:
    Temat założyłeś w dziale ARM a Bascoma na ARM`y jeszcze nie ma :D

    Na ARM jest kilka Basic'ów znacznie lepszy od Bascom np mikrobasic PRO for ARM.
    Co ciekawe ma super kompilator, czasem a nawet często po kompilacji napisany program w powyższym Basic jest szybszy niż analogiczny program napisany w Eclipse z C. Zwyczajnie obowiązuje zasada nieważne w jakim języku piszemy, ważne jak zostanie skomplikowany.
  • #8 14489321
    szczywronek
    Poziom 28  
    @piotr411 - nie wiem jak ma się sprawa z basic'iem dla ARM'ów, ale to co dalej piszesz to już odrobinę bzdury.
    piotr411 napisał:
    szybszy niż analogiczny program napisany w Eclipse z C
    A jak ma się, według Ciebie, szybkość programu napisanego w języku C z użyciem Eclipse do identycznego programu napisanego w języku C w notatniku?

    Cytat:
    nieważne w jakim języku piszemy, ważne jak zostanie skomplikowany
    Kto :?:
  • #9 14540146
    RomanSkok
    Poziom 10  
    Wracając do głównego tematu. W bascom AVR próbowałem do mikroprocesora podłączyć trzy układy z liniami I2C (czujnik ciśnienia -BMP85, zegar DS3231 i LCD-I2c ). Okazuje się, że LCD na linii I2C działa , ale tylko z jednym urządzeniem ( BMP85 - LCD-I2C lub DS3231 - LCD-I2C).
    Próby podłączenia wszystkich w/w urządzeń kończyły się niepowodzeniem. Będę jeszcze próbował z różnym taktowaniem procesora, tym niemniej temat można zamknąć.
REKLAMA