Co to za błędy, albo co wskazuje kompilator ? Dodano po 1 Co to za błędy, albo co wskazuje kompilator ?
Wydaje mi się, że kompilator nie ma problemu z funkcją "mod" (dlatego też dwie ostatnie cyfry się zgadzają), tylko przy dzieleniu zmiennej typu word, dającej zmienną typu byte jako wynik.
Arduino to całe miliardy płytek, rozszerzeń, komponentów, szildów itp. Bascom to jedynie kompilator z bibliotekami do kilku zastosowań. Poza tym, Bascom nie jest darmowy i chyba nie jest tak popularny jak arduino.
To bardzo proste, chcesz kompilować kod BASCOM przez kompilator AVR-GCC (język C) to tak jakbyś chciał przetłumaczyć chińskie zdanie korzystając z polsko rosyjskiego słownika.
Proszę. Poprawiłem to źródło i sie kompiluje co poznasz po tym, że w paczce masz bin i hex Autor wielokrotnie użył tych samych nazw dla zmiennych i funkcji. Stary kompilator moze na to pozwalał, ale nowsze chcą mieć pewnośc o co programiście chodzi. To się łatwo diagnozuje i naprawia w 2086 z włączonym Code Explorer`em. Inna sprawa co Ty z tym potrafisz...
Trudno mieć pewność, która to linia programu generuje ten błąd, ale kompilator chyba to wskazuje?
#include<avr/io.h> //sam typ procesora wybiera się w opcjach #include "lcd.h" //tu są przypisane wyprowadzenia do lcd i prototypy funkcji do obsługi lcd #ifndef F_CPU #define F_CPU 8000000UL //to w sumie nie potrzebne bo wybiera się w oppcjach #endif char B1[21] = "Bascom";//w C dodatkowo 1 bajt na koniec łańcuch znaków...
Zajrzałem do skompilowanego pliku i widzę że kompilator w ogóle nie używa tu R2 i R3 więc mi je zostawił ;) Od pewnego czasu w Bascom do rejestrów można się odwoływać prosto z kodu. Ciekawe którą wersję Bascom masz. Pewnie znowu schody... U mnie program się kompiluje na 96% [syntax=vbnet] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 16 $swstack...
Bo trochę zajmuje stos i ramka. I na zmienne zostaje mniej niż 128B pamięci. W C sprawa wygląda tak samo tylko że kompilator C nie sygnalizuje błędu.
1. W jakim celu konfigurujesz liczniki, wpisujesz im wartości początkowe, a potem wywołujesz ich zatrzymanie przez STOP TIMER0/TIMER2 skoro nigdzie indziej ich ponownie nie uruchamiasz? 2. Jakim cudem kompilator nie protestuje gdy w pętli głównej umieszczasz samo ON TIMER0/TIMER2 nie podając trzeciego słowa kluczowego GOTO/GOSUB i ostatniego ich parametru?...
Zwarłem piny. Po próbie wgrania programu otrzymuje takie coś: http://obrazki.elektroda.pl/2238683800_1... Witam. Jeżeli Kolego piszesz w programie Bascom to chyba w kompilatorze nie masz ustawionych pewnych tzw. ptaszków. Wejdź do zakładki: Opcje > Compiler > Output i zaznacz po lewej stronie wszystkie pliki, które ma wygenerować kompilator...
Co do kwarcu to definiujemy go zawsze, niezależnie od tego czy proc pracuje na zewnętrznym, czy na wewnętrznym, bo to jest informacja dla kompilatora, wg jakiej wartości ma wyliczyć czasy dla różnych instrukcji. Jeżeli to jest "nówka sztuka" to pracuje na wewn. 1MHz. Jak sam zauważyłeś, instrukcja "Loop" powinna znajdować się po ostatnim "Endsub", ale...
Witam. Odnośnie wgrywania fusebitów z programu to mam taki problem: Gdy zapiszę ustawienia fuse do pliku programu to w przypadku procka atmega8 w normalnej wersji dip28 kompilator bascom avr zapisuje tak: $prog &HFF,&H13,&HD9,&H00 i to działa przy wgrywaniu programu do następnego procka,bity ustawiają się automatycznie. Natomiast gdy zapis do programu...
Po pierwsze - użyte procedury z innych bibliotek powinny się znaleźć w lini $EXTERNAL: [_I2C_RBYTES] $EXTERNAL _I2C_READ _I2C_RBYTES: Mov R17,R18 ; copy slave address Cpi R24,0 ; bytes to send Po drugie można wplatać instrukcje BASCOM tylko trzeba to zrobić z prefixem: *BASIC: waitms 1 Po trzecie chcesz coś wysłać, a zatem nie _i2c_rbytes...
Jeszcze jedna uwaga: końce linii muszą być w standadzie win/dos, tzn. linie muszą być zakończone sekwencją \r\n, inaczej kompilator głupieje. Niby drobiazg, ale trochę przeszkadza na początku.
Nie znam mozliwości w tym zakresie Bascoma. Jedno jednak jest pewne. Każdy program tego typu może działać sekwencyjnie. Oznacza to, że wywoływanie kolejnych procedur w procedurze działać musi. Jest jednak tzw granica zagnieżdzeń. Może ona wynika z możliwości samego kompilatora (programu tłumaczącego - w tym wypadku Twoim nie sądzę aby tak było), albo...
Uważam, że moderator ... Działania moderatorskie wykonuję na czerwono za pomocą odpowiednich funkcjonalności. Niestety raz się zdarzyło że na czerwono wyciąłeś tekst o "niewygodnym" środowisku programistycznym :D Ale nie o tym będę pisał. Napiszę jak to wyglądało u mnie. Ja zaczynałem od BASCOMa. I to BASCOMa '51. Były artykuły w EdW. Nie miałem jeszcze...
W AVRStudio z kolei nie są zdefiniowane niektóre nazwy symboliczne i trzeba ich adresy wpisywać, inaczej kompilator burzy się, że takowaych nie ma. Obecnie produkowane M48/88 róznia sie tylko iloscia pamięci (wg. datasheet)
Z całym szacunkiem to jest to po prostu wioska. Nie zadałeś sobie trudu sprawdzenie biblioteki o której pisałem. Powinienem to tak zostawić , ale nie mogę na to patrzeć. Nie dość, że nie możesz używać standardowych instrukcji Bascom takich jak Lcddat, Showpic itd to jeszcze potrzebujesz 512 Bajtów na bufor.. Dyskwalifikuje to ten kod dla mniejszych...
Po pierwsze jakie czasy chcesz obliczać i jakie przerwania po co ??? To jest bascom nie assembler, deklarujesz na wstępie programu prędkość kwarcu a kompilator troszczy się o resztę tj. dajesz deklarację $regfile = "m8def.dat" $crystal = 12000000 Po drugie, procedura obsługi wyświetlaczy LCD (mowa tu o alfanumerycznych HD44780) jest w BASCOM zaimplementowana...
Masz błędy kompilacji , bo zapomniałeś o jednym magicznym zaklęciu ;) Config Rc5 = P3.2 Domyślnie , kompilator ustawiony jest na P0.0 , a Twój procek takowego pinu nie posiada :D Piotrek
Zdecydowanie AVR bo posiadają więcej peryferii, wszystkie programowane są w systemie, są dużo szybsze, mają lepsze porty (są w stanie wyciągnąć stan wysoki, a nie tylko zwierają do masy), nie wymagają zwykle elementów resetu, oraz kwarcu. Jednym słowem nie mają raczej minusów (no może poza stosunkowo słabą odpornością na zakłócenia). Jeżeli chodzi o...
Jeżeli wpisałeś "interlan" to kompilator nie wie co to jest, powinno być INTERNAL. Pokaż kod programu. Rzeczywiście bascom nie przyjmuje takiego parametru, widocznie to kolejna jego niedoróbka. W tej sytuacji pozostaje ręczne skonfigurowanie rejestru odpowiedzialnego za napięcie odniesienia. np: dla napięcia 1.1V ADMUX.REFS0=0 ADMUX.REFS1=1 ADMUX.REFS2=0...
Sprawa pierwsza czyli instrukcje konfiguracyjne w kodzie. Chodzi o to, że jeśli nie wstawisz takiej instrukcji a użyjesz w kodzie chociażby jednej instrukcji PRINT, INPUT albo innej związanej z UART to cudów nie ma, trzeba skonfigurować UART i kompilator musi przeliczyć prędkość dla UBRR i ustawić bity konfiguracyjne. Dane musi skądś wziąć więc weźmie...
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
Jeśli jeszcze wywala błąd przy kompilacji , to dopisz jedno magiczne zaklęcie :D Config Rc5 = Pinx.y i na dokładkę $regfile = "m32def.dat" Skąd kompilator ma wiedzieć , który pin przyporządkowałeś odbiornikowi podczerwieni :?: Jasnowidzem to on nie jest :D Piotrek PS Nie polegaj zbytnio na ustawieniach globalnych- stosuj dyrektywy w kodzie :!:
Możesz podać gdzie przeczytałeś że ta liczba po przecinku oznacza liczbę wysłanych bajtów? Help nic nie mówi na ten temat. Sprawdzałem w symulatorze że ta liczba nic nie zmienia. Jest taka informacja w helpie "When you use Printbin ar(1) , the whole array will be printed." A kto powiedział że ja wpisuje dane? Ja je wysyłam. Ale twoja tablica jest pusta....
Cześć. Proszę ten poradnik będzie dla Ciebie pomocny. Czy to już tablica? Gdzie ją umieścić? Tak, to jest tablica. Kompilator sam załatwi sprawę. [syntax=vbnet]$regfile = "m48def.dat" $crystal = 4000000 $baud = 19200 $hwstack = 32 $swstack = 10 $framesize = 40 Dim B1 As Byte , I As Integer B1 = Lookup(2 , Dta) Print B1 I = Lookup(0 , Dta2) Print I End...
Ja na poważnie. Ale miałem na myśli coś innego. Nie kontrolę czasu ale stałość czasu. C nie gwarantuje wygenerowania konkretnego kodu a jedynie kodu o konkretnej funkcjonalności. Co z miejsca zaprzecza temu że czas wykonywania będzie stały. BASCOM gwarantuje wygenerowanie konkretnego kodu. Co oczywiście jest nieoptymalne, ale gwarantuje określony czas...
Z tą dowlnością w używaniu rejestrów byłbym bardzo ostrożny. Nieodpowiednia zmiana - program się wysypie. Nie wolno używać w trybie zapisu bez wcześniejszego zapamiętania: Y ( soft stack pointer ), R4:R5 ( frame stack pointer ), R6 ( status register ), R8:R9 ( data pointer ), R23 ( translate register ), R12:R13:R14:R15 ( fp calculator ). W sumie można...
Niestety Jak dam instrukcję ustawienia bufora to już nic nie odbiera (nadawać nadaje). A włączyłeś przerwania :?: Bez bufora(przerwanie RX) , ciężko dogadać się z fonem :( Właśnie zauważyłem że jak zepnę RX z TX uP (wywale printa z głównej pętli i dam wait na 5sek. ) to odbiór też jest na 3 znaki :/ Czy wiesz jak wygląda transmisja asynchroniczna ,...
Gdy procesor jest w trakcie wykonywania procedury przerwania, następne przerwanie nie będzie przyjęte , gdyż procesor (nie kompilator!) zeruję flagę globalnego zezwolenia na przerwania. Tak samo flaga bieżącego przerwania (tego, którego procedura obsługi jest wykonywana) zostaje automatycznie wyzerowana. Po zakończeniu przerwania flaga globalnego zezwolenia...
Nadaje się bardzo dobrze. Jest tam opis pakietu BASCOM oraz przykładowe układy i programy do podstawowych zastosowań. Do nauki potrzeba jeszcze płytli testowej i programatora - no i oczywiście BASCOMA (wystarczy demo). W tym przypadku programowanie można zacząć właściwie od zaraz. Jeśli miałeś do czynienia z "C" to polecam darmowy kompilator WinAVR....
błąd którego raczej kompilator niezauważy: (ciach) '***Przod*** Przod_0: H1a = 1 H1b = 0 H2a = 1 H2b = 0 Return ' Brakowało tej linii. '***Tyl*** Tyl_0: H1a = 0 H1b = 1 H2a = 0 H2b = 1 Return ' Brakowało tej linii. '***Lewo*** Lewo_0: H1a = 1 H1b = 1 H2a = 1 H2b = 0 Return ' Brakowało tej linii. '***Prawo*** Prawo_0: H1a = 1...
Sprawdź jeszcze jeden "myk" Wszędzie zamiast Chr( ) wpisz ten sam numer tylko w nawiasach klamrowych (bez Chr - tylko sam nawias i trzy cyfry) Przykład: Zamiast Chr(1) wpisz Lcd {001} Zamiast Chr(7) wpisz Lcd {007} Zamiast Chr(32) wpisz Lcd {032} Kod się znacząco zmniejszy co może się czasem przydać przy małych mikrokontrolerach. Chr( ) to funkcja zamieniająca...
Trochę wysiłku i wszystko można ;).......... BASCOM również nie polecam, osobiście używam C ( jak dla mnie jest łatwy, prosty i przejrzysty ) jeśli tylko masz chęci i ochotę do nauki to bardzo polecam ten język. Dokłdnie.....(!???) Najlepszym przykładem jest wątek:http://www.elektroda.pl/rtvforum/v... problem z którym autor...
Nie ma potrzeby ustawiać adresów zmiennych "na sztywno". Ponieważ Bascom dla zmiennych wielobajtowych , stosuje zapis typu Little Endian to kod może wyglądać tak: Dim Zmienna As Word Dim Zmienna_lo As Byte At Zmienna Overlay Dim Zmienna_hi As Byte At Zmienna+1 Overlay I nie obchodzi nas pod jakim adresem znajduje się Zmienna , bo kompilator zadba o...
Co rozumiesz pod pojeciem zmienna ? Jezeli chodzi Ci o komorke pamieci RAM to jest banal: mov zmienna,A Wczesniej oczywiscie musisz zadeklarowac zmienna np. zmienna equ 50h Od tej pory gdy kompilator napotka slowo zmienna to bedzie wiedzial ze to znaczy 50h. Instrukcja mov przepisze zawartosc akumulatora do komorki o adresie 50h. Jesli chcesz to od...
Jeśli w programie będziesz miał błąd, to nie przejdzie on procesu kompilacji, czyli w efekcie i tak nie dostaniesz pliku wynikowego (bin/hex), który wgrywasz do procka.. Pod warunkiem, że będzie to błąd składniowy. Najgorsze są właśnie błędy o których kompilator nie informuje. Kompilacja przebiega poprawnie, a program i tak nie działa jak trzeba. Prosty...
Dzień dobry. Kompilator przecież pisze o co chodzi :D Zamiast "jeśli przycisk = 0" napisałeś "jeśli przycisk = Duża litera O" Brakuje też przecinka przed Right. http://obrazki.elektroda.pl/7581088600_1... Poniżej film z uruchomionej symulacji :D https://filmy.elektroda.pl/100_144731640... Miłego dnia. P.S. Do Gunslinger - Myślę że...
Może to ja zrobiłem błąd, który kompilator zignorował i przepisał po swojemu... no nie wiem Nigdy nie było oficjalnie takiej konstrukcji polecenia CONFIG TIMER2 z takim parametrem jak klauzula PWM A = 8. Aczkolwiek czasem polecenia CONFIG przyjmują różne klauzule, ale ich działanie odbiega od założeń. Np. do niedawna można było w CONFIG ADC napisać...
Hahahaha :D tak! W IDE sa wpisane takie dla małego projektu i małego procesora. Mając większy projekt i procesor trzeba je albo tam zmienić albo wpisać bezpośrednio w projekcie. Kompilator się nie pyta o nie bo ma wpisane te domyślne, ale one są za małe. Musisz wiedzieć jaki masz mikrokontroler i ile ma RAM`u. Na przykład ATmega 32 ma 2kB RAM`u (dwa...
Możesz napisać i cieszyć się funkcjonalnością nie wiedząc o co chodzi ... $baud = predkosc_transmisji Tylko jeśli nie umieści się tej informacji w kodzie i użyje gdzieś Print/Input lub pochodnej to kompilator ustawienia dla $baud bierze z tych zdefiniowanych w IDE. Bascom konfiguruje od razu obydwa piny. Skonfigurowanie ich polega na wpisie do rejestru...
Myślę, że jest to naturalne. Zmienna typu Long zajmuje 4 bajty a Integer tylko 2. Nie da się ciężarówki zaparkować w garażu dla malucha. W helpie jest informacja, że można dokonywać konwersji typów. Oto fragment: Dim I As Integer, S As Single S = 100.1 'przypisujemy liczbę zmiennoprzecinkową I = S 'ta instrukcja zmieni liczbę typu single na Integer...
Ta wstawka asm nie jest prawidłowo napisana, działa tylko dlatego, że kompilator nie wykorzystał jak dotychczas rejestrów R14 i R15. Jeśli program rozrośnie się na tyle, że kompilator będzie wykorzystywał te rejestry to program przestanie działać. Jak wspomniałeś poza eterem, masz możliwość skorzystania z ATmega32 i podpięcia wszystkich sygnałów do...
Jeśli kolega ma zamiar pisać poważne programy a z objętości kodu można wywnioskować że hello world już kolega przeskoczył najwyższa pora by przesiąść się do bardziej profesjonalnego środowiska . Wydanie prawie 500PLN na Bascoma to strata pieniędzy . Za taką sumę może kolega zakupić np DRAGONA I XPLAINA z 1284p lub oryginalny JTAG ICE3 i ściągnąć w pełni...
powoduje miganie diody w bardzo nie regularnych odstępach czasu - widać to "gołym okiem". Na dodatek trudno nazwać te odstępy "pół sekundy". ... Na początku mam jeszcze: $hwstack = 32 $swstack = 8 $framesize = 16 Bez tego nie idzie zadeklarować żadnej zmiennej - "out of SRAM". Dyrektywa CRYSTAL tylko informuje kompilator o częstotliwości generatora....
Prawidłowo robi się to tak: XH , YH , lub ZH . Kolejnym krokiem jest odczyt młodszej części adresu i odpowiednio przepisanie jej do XL , YL , lub ZL .
Witam! Do zabawy z programowaniem potrzeba: 1 – kompilator np.: Bascom ( język BASIC ) lub AVR-GCC ( język C ). 2 – programator ( ja używam USBasp, ponieważ do jego budowy wymagany jest zaprogramowany mikrokontroler, a gdyby kolega nie miał dostępu do programatora, to zestaw elementów jest dostępny na: http://sklep.avt.com.pl/go/_search/full_...
Kompiluje kod obslugujacy przerwanie i sporą ilość podprocedur a kompilator zgłasza mi że nie używa stosu sprzętowego? O programowym stosie juz nie wspominając....Dlaczego kompilator tego nie uzywa? Teoretycznie powinien. Mam bascoma avr ktory nie ma w opcjach kompilacji cudownego checkboxa "Use stack" :D wiec nie wiem jak to sie włącza, a wnioskuje...
mam pare programow ale niestety nie moge ich skompilowac ze wzgledu na to ze nie mam pełnej werscji BASCOMA, czy posiada ktos moze Bascoma ale bez ograniczeń i mógł by mi skompilowac jeden programi ??
Jak się kompiluje program który się składa z kilku plików xxx.bas w bascom avr?
kompilator bascom kompilator bascom błędy błąd kompilator bascom
pompa wodna schemat hamulec wkrętarka zgrzewanie matrycy
radom kamera bateria macallister
Hako V490 – rozstaw śrub w tylnym kole, PCD 4x110 mm, alternatywnie 4x100 mm, felgi, piasta Lexmark X950 – wymiana bębna światłoczułego, reset licznika, oryginał vs zamiennik