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

m8 - [bascom] Optymalizacja Select Case w przerwaniu UART dla GPS

Ficu 11 Sie 2012 00:48 1478 3
REKLAMA
  • #1 11196484
    Ficu
    Poziom 31  
    Witam,
    walczę z GPS i mam problem z Select Case:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    to nie działa - program się zawiesza, ale gdy usunę którąś Select Case to program działa:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Cel jest taki żeby w przerwaniu przejrzeć 2 ramki i wydobyć z nich interesujące mnie dane (prędkość i liczba satelit).
    Co robię źle?

    Pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 11196718
    LordBlick
    VIP Zasłużony dla elektroda
    Buforuj otrzymane znaki i przetwarzaj w procedurze pętli głównej programu. Oczywiście wiąże się to z wywaleniem wszelkiej maści form kodu blokującego procesor i oparciem odliczania czasu o Timer.
  • REKLAMA
  • #3 11196872
    Ficu
    Poziom 31  
    Jeszcze mam pytanie odnośnie wew pamięci eeprom, jeżeli chcę zapisać bądź odczytać 2 znaki to korzystam z writeeprom/readeeprom, zmienna, adres, gdzie adres jest równy 0-xxx (właśnie dla atmega8 ile to jest? 511?).

    Przyjmijmy że zapisuje liczbę 123 pod adresem 100, jeżeli odczytam dane z adresu 101 to wynikiem będzie 2? Czy 0 bo nic tam nie zapisałem? Jaką max wartość mogę zapisać pod 1 adresem eeprom?

    Pozdrawiam
  • Pomocny post
    #4 11196980
    LordBlick
    VIP Zasłużony dla elektroda
    Jeśli procesor ma wbudowane 512 bajtów EEPROM, to ostatni adres to 0x1FF/511.
    Ficu napisał:
    Przyjmijmy że zapisuje liczbę 123 pod adresem 100, jeżeli odczytam dane z adresu 101 to wynikiem będzie 2?
    Wynikiem będzie to, co wcześniej zapisano pod adresem 101.
    Ficu napisał:
    Jaką max wartość mogę zapisać pod 1 adresem eeprom?
    Z punktu widzenia 8-bitowej magistrali danych pod jednym adresem można zapisać 8-bitową informację, czyli max to 0b11111111/0xFF/255. Jak Bascom zapisuje większe niż jedno-bajtowe zmienne, powinno być napisane w Helpie.
REKLAMA