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

Błąd file not found w BASCOM 1.11.8.3 przy kompilacji softu na ATtiny2313

bogdan5 06 Kwi 2007 00:36 2070 6
REKLAMA
  • #1 3757724
    bogdan5
    Poziom 17  
    Posty: 338
    Pomógł: 15
    Ocena: 36
    Witam zainstalowałem najnowszą wersję bascoma 1.11.8.3 i chcę skompilowac program z kursu mikroprocesorowej oslej łączki co32g jest to podwójny termometr , wgrywałem go starą wersją bascoma do procka
    90s2313 i działał. Teraz chcę skompilowac soft pod ATtiny2313 i wyskakuje mi Error file not found , co robie nie tak za pomoc dziękuję a to soft



    ' C032g z dwoma DS18B20 tylko z zasilaniem zewnętrznym przez VDD
    Config 1wire = Portd.5 ' + jumper J2 B-C
    Dim T As Integer , T1 As Single
    Dim Adr(16) As Byte , I As Byte , X As Byte
    X = 1 : Adr(x) = 1wsearchfirst() 'znajdź pierwszy adres
    X = 9 : Adr(x) = 1wsearchnext() 'znajdź drugi adres
    Do
    Toggle X.3 'ustawia X=1 albo X=9
    ' odczytaj "starą" wartość temperatury:
    1wreset : 1wwrite &H55 : 1wwrite Adr(x) , 8 : 1wwrite &HBE
    T = 1wread(2) 'od razu wpisz do zmiennej typu Integer
    Shift T , Right , 2 'odpowiednik dzielienia przez 4
    If T.13 = 1 Then 'jeśli temperatura ujemna
    T = T Or &B1100000000000000 'uzupełnij jedynki znaku
    End If
    T1 = T 'przepisz do zmiennej Single
    Shift T1 , Right , 2 'SHIFT działa na zmiennej Single
    If X.3 = 0 Then 'X=1 - pierwszy czujnik
    Waitms 1000 'pomiary co sekundę
    Cls 'w górnej linii będzie temperatura T0
    Else 'X=9 - drugi czujnik
    Lowerline 'w dolnej linii będzie temperatura T1
    End If
    Lcd "T" ; X.3 ; "=" ; T1 ; "oC" 'wyświetl T0, T1
    ' a teraz zmierz "wową" wartość temperatury:
    1wreset : 1wwrite &H55 : 1wwrite Adr(x) , 8 : 1wwrite &H44
    Loop : End 'koniec programu głównego
  • REKLAMA
  • #2 3757743
    Balu
    Poziom 38  
    Posty: 4397
    Pomógł: 323
    Ocena: 48
    To był cały komunikat?
    Może pisał, jakiego pliku nie znalazł?
    P.S.
    A gdzie deklaracja jakiego uklocka używasz?
    $regfile = "xxxxx.dat" ?
    Lcd config?
    Cokolwiek?
  • REKLAMA
  • #3 3757766
    bogdan5
    Poziom 17  
    Posty: 338
    Pomógł: 15
    Ocena: 36
    na początku był komunikat file is readonly,it can not be changed
    co do deklaracji to w opcjach kompilatora ustawiłem typ procka i na jakie piny jest podpiety lcd
  • REKLAMA
  • Pomocny post
    #4 3757781
    Balu
    Poziom 38  
    Posty: 4397
    Pomógł: 323
    Ocena: 48
    Co do pierwszego to skopiuj zawartość pliku do kompilatora.

    Co do drugiego rób to raczej w kodzie.
    Bezpieczniejsza opcja - że zauważysz błąd.

    Pozdrawiam Łukasz.
  • REKLAMA
  • Pomocny post
    #5 3758612
    teedd
    Poziom 19  
    Posty: 219
    Pomógł: 24
    Ocena: 2
    Witam.
    Najnowsza wersja Bascoma AVR to już 1.11.8.5 :)
    Po wrzuceniu na początku
    $regfile = "m8def.dat"
    oraz zdefiniowaniu końcówek sterowania LCD (PB2 do PB7) program kompiluje się bez błędu. Dla procesora 2313 i Tiny2313 kompilator melduje o braku pamięci flash, bo kod wynikowy przekracza jej rozmiar. Po odchudzeniu programu wszystko jest ok.
    teedd
  • #6 3758708
    WaldekPrzybyłek
    Poziom 15  
    Posty: 103
    Pomógł: 10
    Ocena: 4
    Ale ta wersja to BETA.
  • #7 3760325
    bogdan5
    Poziom 17  
    Posty: 338
    Pomógł: 15
    Ocena: 36
    witam po zdeklarowaniu większej kostki na atmega8 program skompilował się .bez błędów,a przedtem skopiowałem i wkleiłem do kompilatora jak napisał balu .
    najciekawsze jest to że starsza wersja baskoma wcisneła do 90s2313 i kod nie przekroczył 2k.
    przy obecnych cenach atmega8 około 5 zł przerobię płytkę i załaduję to do niego zawsze jeszcze mogę cos dopisać

    WESOŁYCH ŚWIĄT

Podsumowanie tematu

LABEL_AI_GENERATED
Podczas próby kompilacji programu pod mikrokontroler ATtiny2313 w Bascom AVR w wersji 1.11.8.3 pojawił się błąd "file not found". Problem wynikał z braku poprawnej deklaracji pliku definicji procesora w kodzie, czyli dyrektywy $regfile z odpowiednim plikiem .dat. Wskazano, że konfigurację typu mikrokontrolera i pinów LCD należy umieścić bezpośrednio w kodzie źródłowym, co jest bezpieczniejszą praktyką. Użytkownik zauważył również komunikat o pliku tylko do odczytu. Po zastosowaniu dyrektywy $regfile z właściwym plikiem (np. m8def.dat dla Atmegi8) i zdefiniowaniu pinów LCD program kompilował się bez błędów, jednak dla ATtiny2313 kompilator zgłaszał przekroczenie pamięci flash. Po optymalizacji kodu problem zniknął. Wersja Bascom 1.11.8.5 została wskazana jako nowsza i bardziej stabilna niż 1.11.8.3. Ostatecznie autor zdecydował się na użycie Atmegi8 zamiast ATtiny2313 ze względu na większą pojemność pamięci i niższą cenę, co umożliwiło kompilację i dalszy rozwój projektu podwójnego termometru z dwoma czujnikami DS18B20.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA