Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Błędy przy kompilacji - POMOCY?

robiw
-
-
Posty: 34
Rejestracja: 21 wrz 2005, o 12:36
Lokalizacja: Gniezno

Błędy przy kompilacji - POMOCY?

Postautor: robiw » 27 lut 2006, o 08:37

Witam.
Napisałem w Bascomie prosty program do odczytu 2 termometrów DS1820 i PCF8583 - właściwie jest to zarys gotowych procedur. Niestety przy kompilacji wywala mi masę wewnętrznych błędów - Internal Errors w ostatniej linii. GDZIE ROBIĘ BŁĄD? Zmniejszałem liczbę zmiennych typu Byte (chyba jest ich zbyt dużo więc zmniejszyłem rozmiar tablicy Adresy) ale nic to nie zmieniło. Załączam program w oryginalnej wersji - MOŻE KTOŚ MNIE OŚWIECI? robiw

PS. BASCOM-8051 ver. 2.0.11.0
Załączniki
Automat.zip
program w Bascomie
(1.37 KiB) Pobrany 144 razy

_ImPuLs_
-
-
Posty: 17
Rejestracja: 30 lis 2003, o 21:58
Lokalizacja: Krasnystaw
Kontaktowanie:

Postautor: _ImPuLs_ » 28 lut 2006, o 00:08

Należałoby na początku programu skonfigurować linie do których będą dołączone:
- układy 1WIRE

Kod: Zaznacz cały

Config 1wire = P1.0
- szyna I2C

Kod: Zaznacz cały

Config Scl = P3.0 Config Sda = P3.1
(oznaczenia portów podałem przykładowo).

Kompilator nie mają powyższych dowiązań próbuje zastosować pin 0 portu P0 którego nie znajduje w pliku definicji '89C4051.dat'. Procesor AT89C4051 rzecz jasna nie posiada takowego portu (posiada P1 i P3). Powodem tego jest błąd:

Kod: Zaznacz cały

Error 131 : Illegal asm-command : Setb [P0.0] .........
no i oczywiście kilkanaście następnych podobnych.

robiw
-
-
Posty: 34
Rejestracja: 21 wrz 2005, o 12:36
Lokalizacja: Gniezno

Postautor: robiw » 28 lut 2006, o 07:37

Należałoby na początku programu skonfigurować linie do których będą dołączone:
- układy 1WIRE

Kod: Zaznacz cały

Config 1wire = P1.0
- szyna I2C

Kod: Zaznacz cały

Config Scl = P3.0 Config Sda = P3.1
(oznaczenia portów podałem przykładowo).

Kompilator nie mają powyższych dowiązań próbuje zastosować pin 0 portu P0 którego nie znajduje w pliku definicji '89C4051.dat'. Procesor AT89C4051 rzecz jasna nie posiada takowego portu (posiada P1 i P3). Powodem tego jest błąd:

Kod: Zaznacz cały

Error 131 : Illegal asm-command : Setb [P0.0] .........
no i oczywiście kilkanaście następnych podobnych.
Dzięki, pewnie to też pomaga ale nie do końca chodziło o ten problem (konfiguracji). To generalnie problem samego kompilatora, gdyż wystarczyło dopisać w pętli głównej programu "Do Loop" cokolwiek (np: Print) aby nie wywalał żadnego błędu. Bez deklaracji magistrali I2C i 1-Wire kompiluje się bez problemu gdy mu się wpisze jakąkolwiek instrukcję w pętli... to chyba nie najlepszy kompilator... ale prosty język... Robiw

_ImPuLs_
-
-
Posty: 17
Rejestracja: 30 lis 2003, o 21:58
Lokalizacja: Krasnystaw
Kontaktowanie:

Postautor: _ImPuLs_ » 28 lut 2006, o 09:44

Bo skonfigurowałeś piny I2C w menu 'Options->Compiler->I2C'.

Jeżeli nie będzie prawidłowo skonfigurowana szyna I2C czy to poprzez polecenia 'Config' czy też poprzez ustawienia w 'Options' to będzie tak jak pisałem poprzednio.

Odnośnie pętli 'Do ... Loop' to może być pusta.
Nie raz tak testowałem poprawność procedur i nie było żadnego problemu.

Nawet Twój program z pustą pętlą kompiluje się bez błędów.
Sprawdzane wielokrotnie na wersji 2.0.11.0 Bascom-a.

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości