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

Jak skonfigurować Bascom dla Attiny13 bez dedykowanego wsparcia?

radko_ 13 Lip 2007 08:30 3026 7
REKLAMA
  • #1 4077280
    radko_
    Poziom 17  
    Posty: 336
    Pomógł: 18
    Ocena: 11
    Witam

    Chciałbym napisac prosty program w Bascom-ie sciagnolem wersje demo ale nie ma w niej takie ukladu do wyboru.

    Co mam wybrac aby dyrektywy sie zgadzały?
  • REKLAMA
  • Pomocny post
    #2 4077954
    ja_dzik
    Poziom 18  
    Posty: 256
    Pomógł: 28
    Ocena: 17
    Pobierz plik z załącznika. Rozpakuj go i wklej do głównego folderu programu. Na samym początku programu wpisz:
    
    $regfile = "Attiny13.dat"    
    


    I nic więcej nie musisz robić.
    Załączniki:
    • ATtiny13.rar (2.41 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #4 4079274
    radko_
    Poziom 17  
    Posty: 336
    Pomógł: 18
    Ocena: 11
    Dzieki za pomoc juz mam dyrektywy.

    Teraz Mam pytanie:
    Dlaczego podczas suymulacji programowiej program dziala bardzo wolno.
    W programie mam np. polecenie Waitms 25 i zamiast 25ms trzeba czekac ok 5 sekund. Dlaczego sie tak dzieje?

    Jak to jest z tym wew. oscylatorem. bo rozumiem jesli nie korzystam z zew. to w programie nie podaje wartosci oscylatora?

    pozdrawiam
  • #5 4079368
    ja_dzik
    Poziom 18  
    Posty: 256
    Pomógł: 28
    Ocena: 17
    Jest tak dla tego żeby można było dokładnie przeanalizować działanie programu.
    Cytat z pomocy Bascom'a:
    Cytat:

    Dyrektywa $SIM
    rzeznaczenie:

    Instruuje kompilator by nie generował pętli opóźniających dla instrukcji WAIT czy WAITMS. Spowoduje to zwiększenie szybkości symulacji.

    Składnia:

    $SIM

    Opis:

    Symulacja instrukcji WAIT może trwać dość długo, zwłaszcza gdy otwarte jest okno podglądu zawartości pamięci. Umieszczenie tej dyrektywy spowoduje, że kompilator nie wygeneruje pętli opóźniających dla instrukcji WAIT czy WAITMS. Przyśpieszy to oczywiście symulację programu.

    Uwaga! Gdy program będzie gotowy, należy usunąć (lub umieścić w linii komentarza) dyrektywę $SIM, inaczej instrukcje WAIT i WAITMS nie będą działać poprawnie.

    Jeśli wystąpi próba zaprogramowania pamięci Flash, programem skompilowanym z dyrektywą $SIM, środowisko BASCOM pokaże stosowne ostrzeżenie.

    Przykład:


    $sim

    Do
    Wait 1
    Loop


    A czestotliwość zawsze określaj w programie. Inaczej procesor może np. zamiast 1s czekać 2s czy jeszcze inaczej. Miałem z tym kiedyś problem czemu progam tak wolno działa. Było to spowodowane nie określeniem w programie częstotliwości zegara. Było ona określona w opcjach Bascom'a i była ona źle określona.
  • REKLAMA
  • #6 4079392
    radko_
    Poziom 17  
    Posty: 336
    Pomógł: 18
    Ocena: 11
    To jaka wartosc mam wpisac przy wew oscylatorze attiny13?
  • REKLAMA
  • #8 4094090
    radko_
    Poziom 17  
    Posty: 336
    Pomógł: 18
    Ocena: 11
    Dziekuje wszystkim za pomoc, attiny dojechaly juz sa zaprogramowane i smigaja w ukladzie :)

Podsumowanie tematu

✨ W dyskusji omówiono sposób konfiguracji Bascom dla mikrokontrolera Attiny13, który nie jest domyślnie dostępny w wersji demo Bascom. Rozwiązaniem jest pobranie i umieszczenie pliku "Attiny13.dat" w głównym folderze Bascom oraz dodanie dyrektywy $regfile = "Attiny13.dat" na początku programu. Poruszono również problem wolnej symulacji programu, gdzie polecenie Waitms 25 działało znacznie dłużej niż 25 ms. Przyczyną jest brak określenia częstotliwości zegara procesora w kodzie, co powoduje błędne działanie opóźnień. Zaleca się zawsze definiować częstotliwość taktowania w programie. Dla wewnętrznego oscylatora Attiny13 domyślna częstotliwość to 9.6 MHz podzielone przez 8, co wynika z dokumentacji Atmela. Po zastosowaniu tych wskazówek programy działają poprawnie na Attiny13.
REKLAMA