Unknown statement Atmega 8 nie ma portu "A". (tylko "B", "C" i "D"). Nie zmieniłeś też $REGFILE na poprawny! Jeżeli chodzi o regfile to zmieniłem, kod na samej górze jest oryginałem, stąd brak zmian w nim Dlaczego przerabiasz kod na takiego dinozaura? Jeśli chcesz zastosować tańszy procesor to spróbuj ATmega88PA, ATmega644P albo inne z końcówką 4PA...
Witam mam problem. Mam program do pomiaru temp 2xDS18B20 podłączone do PB0 (1wire). Po uruchomieniu uK z prawej strony LCD wchodzi pewnien napis potem znika i wyświetla się temp. Na 8535 działa wszystko Ok napis ladnie i płynnie wjeżdża a na 32L wchodzi ale wooolno co 4 sekundy jedna literka a pomiar temperatury w ogóle nie działa. Program jest napisany...
własnie to czytałem wcześniej i nie mogę dać sobie rady.Mam atmege8L podłączoną bezpośrednio pod LCD 3310 (logika 3,3 v). Nic mi się nie wyświetla.dlatego proszę o podesłanie jakiegoś programiku w Bascomie pod atmege8 z opisem jakie porty do czego podpiąć żebym w końcu doszedł co mam źle. Za każdym razem wykorzystuję programy z innego procka a z racji...
Witam Korzystając kodu Tuxgraphics zmodyfikowanego przez Kolegę Mundi1970 , chciałem również postawić prosty serwer pokazujący temperatury z kilku czujników oraz wilgotność i ciśnienie. Po zmianach regfile i pinu CS nie mogę go jednak skompilować. Występują trzy błędy: Error 46 Line: 363 Assignment Error Enc28j60_linkup Erroe 229 Line: 450 End Sub or...
dajesz tak $regfile = "m8def.dat" $crystal = 8000000 lcd "jestem atmega" wait 1 cls lcd "cos tam znowu" wait 1 cls lcd "i tak dalej" ... do 'własciwy pogram loop end
Czy ATmega8535 ma tylko mierzsyć napięcie i wysyłać? Jeśli tak to po co taki duży uK do tego? :) Program może wyglądać tak: $regfile = "m8535.dat" $crystal = 16000000 $hwstack = 32 $swstack = 10 $framesize = 40 Dim W As Word Config Watchdog = 2048 Start Watchdog Reset Watchdog Config Adc = Single , Prescaler = Auto , Reference = Internal Start...
Jtag możesz wyłączyć nawet w kodzie: [syntax=vbnet]$regfile = "m32adef.dat" $crystal = 8000000 $hwstack = 64 $swstack = 32 $framesize = 32 Disable Jtag[/syntax] Do tego wszystkie aliasy przycisków powinny się odnosić do PIN a nie PORT. W niektórych masz PINA i tam jest dobrze ale niektóre masz PORTD i tam zawsze mikrokontroler będzie odczytywał 0.
Kurcze tylko mam kolejny problem bo mój program zajmuje już 40kb a będzie dalej rozbudowywany. Więc mnie blokuje znowu wersja demo. Chyba będe musiał zostawić tą atmege i zakupić atmegę64 i przegladnąć program i go jeszcze bardziej zmodyfikować, żeby zmniejszyć rozmiar. Dziwne jest to że mam wersję Bacoma 2.0.7.3 i tam również nie ma. Nie bardzo rozumiem...
To już załatwia bascom - jest ustawione na Auto. co do sedna, sprawdziłem dziś na swoim układzie kanały 0-7 ADC następującym programem: [syntax=basic4gl] $regfile = "m2560def.dat" $crystal = 16000000 Config Adc = Single , Prescaler = Auto , Reference = Avcc Dim Wart_adc1 As Word Dim Wart_adc2 As Word Start Adc 'AVCC bezpośrednio do 5V, AREF w powietrzu,...
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...
Faktycznie, masz chyba jakąś starszą wersję Bascoma i brakuje pliku m644pdef.dat Musisz też pamiętać o ustawieniach opcji Bascoma i zmianie zapisu na początku programu na $regfile = "m644pdef.dat".
Witam, Przedewszystkim na początku umieć informację, która wskaże kompilatorowi dla jakiego procesora ma utworzyć kod: $regfile = "m8535.dat" Nie jest to konieczne jeśli wybierzesz ręcznie w ustawieniach Bascoma jaki to procek a vcd_a tak właśnie zrobił
Witam. Ustaw prawidłowy scalak powinno być : $regfile = "m644pdef.Dat"
kurcze mi nie wychodzi :| timer chodzi co 1s ale reszta do kitu Dodano po 25 program chodzi :) oczywiscie musisz go przerobic na wlasne potrzeby dodac tyle ile chcesz przekaznikow i zmienic czasy w programie bo tam jest 10s i 40s ten program jest przygotowany pod ATmega8 i kwarc 8MHz $regfile = "m8def.dat" $crystal = 8000000 Config Pind.0...
....przeniosłem się na atmega32.... .... Hmmm, przesiadłeś się na ATmega32 a kompilujesz pod ATmega328p :?: To są dwa "troszkę" różne procesory. A programator jak podłączasz :?:
Witam ! Przetestowałem ten kod: $regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc , E = Portc.4 , Rs = Portc.5 Lcd "witam!" Fourthline Lcd "4" End i wszystko jest OK, program się kompiluje Prawdopodobnie powodem nie kompilowania...
Tłumaczenie pierwszego kodu. W drugim to wiadomo, że brak biblioteki ;) Mogłem się gdzieś machnąć bo pisałem w przerwie pomiędzy innymi zadaniami. Dodałem tam sobie funkcję b w funkcjach mogę deklarować Local`s które nie są później potrzebne w Global`s. [syntax=vbnet]$regfile = "m2560def.dat" '8K SRAM | 4K EEPROM $crystal = 16000000 $hwstack = 256 $swstack...
Piszesz że zastosowałeś procka ATMega8535 a w programie masz deklaracje 90S8535, powinno być $regfile= "m8535.dat" (sprawdź bo dokładnie nie pamiętam nazwy pliku). Po drugie w konfiguracji SPI masz parametr Phase ustawiony na 1, spróbuj zmienić na 0, u mnie działa z 0:D. Zacznij od tego, jak nie pomoże to daj znać. Pozdrawiam Piotrek
Te Waity do diody Led żeby patrzeć czy program się zawiesił nie są szczęśliwym rozwiązaniem dla programowego portu :D Zobacz tak. Dioda błyśnie jak coś odbierze i oczywiście wyśle Ci to drugim portem software`owym. [syntax=vbnet]$regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default...
Tak też można: $regfile = "m8def.dat" Config Portd.1 = Output:Config Portd.4 = Output Portd.1 = 0:Portd.4 = 1 Do Waitms 100 Toggle Portd.1:Toggle Portd.4: Loop Nie naruszasz wtedy innych końcówek portu D, które możesz wykorzystać do innych bardziej szczytnych celów. (A z końcówkami czasem jest krucho.)
Twoja konfiguracja jest dobra. $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db7 = Pb.0 , Db6 = Pd.7 , Db5 = Pd.6 , Db4 = Pd.5 , E = Pb.7 , Rs = Pb.6 cls Do locate 1,1 Lcd " Test " Loop End Wgraj ten program i pokręć potencjometrem od kontrastu.
To chyba powinno wyglądać tak: $regfile = "m8def.dat" Config Portb = Output Portb = &B00000000 Config Portd = Input Portd = &B11111111 Do If Pind.5 = 0 Then Portb.4 = 1 Loop End Oczywiście można i tak, ale mi działa tak jak ja napisałem. I autor tematu musi zbudowac programator STK200/300(pod LTP) lub STK500 pod USB.
Kiedy piszesz Config Clock =Soft to tworzone są zmienne When you use the CONFIG CLOCK (in soft or user mode) directive the compiler will DIM the following BYTE variables automatic : _sec _min _hour _day _month _year Jeśli chcesz porównywać wartość minut..to powinieneś stworzyć jakąś zmienną przechowująca wartośc poprzedniej minuty, na przykład Old_min...
[syntax=basic4gl]$regfile = "m328pdef.dat" $crystal = 16000000 '*** Timer0 Config for 500Hz Interrupt CTC Mode *** Config Timer0 = Timer , Prescale = 256 , Compare A = Disconnect , Compare B = Disconnect , Clear Timer = 1 Enable Compare0a : On Compare0a Int0_isr : Compare0a = 249[/syntax] Kompiluje się bez problemu. Co do ustawienia na rejestrach. Napisałem...
Programu napisanego pod ATmege8 nie można bezpośrednio wrzucić na ATtiny i odwrotnie. Pokaż lepiej oba swoje programy, bo link, który podałeś nie działa. Dodano po 2 Trzeba pewnie przynajmniej zmienić dyrektywę $regfile definiującą typ mikrokontrolera.
Na razie nie ma problemów z działaniem przy : $regfile = "m2560def.DAT" 'ATMEGA 2560 $crystal = 4000000 $hwstack = 64 $swstack = 64 $framesize = 64 Ale karta SD chodzi za wolno. Fakt że na soft-spi . Na Hardware zapewne można by poszaleć ale nie potrafię tego opanować niestety <rozkłada ręce>. Na moje oko procesor chodzi na 4MHz więc...
marcinek.p - to gotowiec dla ciebie, nie mam jak go przetestować ale jestem pewien że zadziała jak trzeba. Masz tu przerwanie, miganie led i zliczanie migniec z incr Mozna to wszystko wkleic do przerwania ale dobra zasada nakazuje w przerwaniach umieszczać jak najmniej kodu. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 $hwstack = 32 $swstack...
e marcus to jest tak jest cała linia 8-bitowa na której lecą non stop jakieś dane do różnych układów, są też dodatkowe 4 linie sterujące na której lecą tylko impulsy "0" i wtedy właśnie lecą właściwe dane które chcę odczytać AVR'em. W sumie z tych 4-linii sterujących na jednej lecą impulsy "0" 128-raz y które wywołują Czy masz jakiś powód aby tą 8-bitową...
Witam, niestety ale chyba coś jest nie tak? Na wstępie należałoby wyjaśnić że nie ma czegoś takiego jak "automatyczne przeładowanie timera" (reload/load timer1 powiedzmy). Termin ten jest związany z procedurą konfiguracji timerów występującą tylko w trybie "Normal", gdzie każdorazowo początkowa wartość timera musi być wpisana przez processor. Taka...
Witam, Jak byś zobaczył do HELPa Bascoma to byś dużo się dowiedział :) $regfile = "m128def.dat" $crystal = 16000000 $baud = 9600 'set the baud rate for the first hardware UART. $baud1 = 9600 'set the baud rate for the second hardware UART. 'when CONFIG COMx is not used, the default N,8,1 will be used Config Pinb.7 = Output Config Com1 = Dummy...
Grala1 - Nie wiem czy ta wersja spełni oczekiwania : '$prog &HFF , &HE1 , &HD9 , &H00 ' Fusebity fabryczne !!! $sim ' dyrektywa opuszczania zwłoki (usunąć ten wiersz przy wgrywaniu w chip) $regfile = "m8def.dat" ' dyrektywa kompilatora o rodzaju procka ATMega 8 $crystal = 16000000 ' określenie kwarca 16 MHz Config Pinb.1 = Output...
Witam Moja propozycja jest taka sciagnij note katalogowa z atmela tam masz spis rejestrow z adresami tego procka ,utworz swoj plik np. atm168DEF.dat a w nim wpisz te rejestry(na podstawie jakiegos innego procka) . W pliku *.bas na poczatku wstaw $regfile ="atm168DEF.dat" i powinno dzialac Pozdrawiam
witajcie mam taki probem chce połączyć dwa avry jeden to at 90s8515 8Mkwarc drugi to atmega 8515 16M kwarc Atmege chce ustawić na MASTER połączyłem piny SCK, MOSI,MISO,SS obu układów chce wysłać z atmegi zmienną "a" do atmela i odwrotnie KOd ATMEGI $regfile = "m8515.dat" $crystal = 16000000 dim a as byte config spi=hard , data order=msb, polarity=high...
Na forum pomagamy osobom które wykazują chęć nauki lub maja konkretny problem. Jak uruchomić zegarek z pełnym kalendarzem itd. jest opisane w Helpie przy instrukcji "Config Clock" Jeśli Ci się nie chce czytać lub nie masz czasu to zleć napisanie tego programu. Osoba z doświadczeniem napisze Ci go w jeden dzień z wszystkimi wodotryskami. Pisze to bo...
Witam, poniżej zamieszczam kod z Bascoma mojego sterownika BMS, w tej chwili kontroluje temperaturę, czas, Rs232, LCD 2x16. Obsługa z klawiatury lub pilota RC5, w obecnej chwili rozwiajm go o dostęp przez internet. zajmuje ok 8kb pamięci więc w A162 będziesz miał jeszcze drugie tyle pamięci. Ja kożystam z A32 Pozdrawiam. PS. daj znać jak zakończysz...
Witam Panowie mam problem mianowicie z komunikacją UART 2 AVR .Jeden z nich to Atmega16(odbiornik) a drugi Atmega328(Nadajnik) i tak: Nadajnik wysyła 2 zmienne do odbiornika na którym jest wyświetlana wartość na LCD i wszystko działa poprawnie ale zdarza się tak że zmienne lubią zamienić się miejscami tzn, "Znak" dostaje wartość "Znak_1" i odwrotnie....
W takim razie nie trzeba żadnych rezystorów. Jeden koniec przycisku podłączasz do wybranego portu mikrokontrolera, a drugi do masy. W programie musisz dać "0" zamiast "1", ale to chyba wiesz sam. Przykładowo przycisk dołączony do PB1 ma zrobić podniesienie wartości I o jeden: $REGFILE="m8def.dat" $CRYSTAL=8000000 Config Pinb.4 = Output Config...
Podstawowa sprawa - w drugiej linijce kodu masz napisane, że $crystal = 8000000 podczas gdy na schemacie nie masz podłaczonego żadnego kwarca. Jeśli używasz wewnętrznego oscylatora (i oczywiście masz tak ustawione FuseBit'y), to ATmega pracuje na 1MHz i taką wartość powinieneś ustawić w programie, bo nic nie będzie działać, albo będzie, ale "dziwnie"...
Witam. Nie wiem jak deklarujesz w programie dany mikrokontroler, ja wpisuję w ten sposób i nigdy nie miałem problemu. $regfile " m8def.dat" Każdą Atmegę 8. ATmega 8L może mieć większy zakres zasilania 2.7V - 5.5V.
Nie rozumie twojego postu . W warunkach kempingu nie wezne sieci . Zmodyfikuje aby przelaczalo na zmiane. $regfile = "m8def.dat" 'atmega 8 $crystal = 8000000 '8 mhz 'INNE KONFIGURACJE Config Timer1 = Timer , Prescale = 256 Config Portd = Output On Timer1 Juz '625 Enable Interrupts Enable Timer1 Load Timer1 = 624 ' powinnno byc 625 ale 0 to...
Witam Chciałem zbudowac układ który liczył by 0-9 i wyświetlane to było na siedmiosegmentowym wyświetlaczu... .......... prosze o pomoc i o jakies proste wytłumaczenie moich błędów. myslalem jeszcze o robieniu tego za pomoca rozkazu INC i dodawania tylko nie wiem jak zawartośc rejestru wystawic na wyjscia z gory dziekuje za pomoc pozdrawiam Tu masz...
Witam. Po raz pierwszy zaczynam używać Atmegi128. Chciałem odpalić programik testowy który zapali diody. Zapalam cztery diody na PORTC i to działa. Problemem pojawia się kiedy wstawię do programu dowolne polecenie wait waitms waitus. Program tak jakby się wtedy zatrzymuje. Atmega pracuje na zewnętrznym kwarcu 8MHz. [syntax=basic4gl] $regfile = "m128def.Dat"...
W Bascom to parę linijek. Proszę bardzo: [syntax=vbnet] $regfile = "m32def.dat" 'wybor typu procesora $crystal = 8000000 'ustalenie czestotliowsci taktowania Config Pina.1 = Output ' diody Config Pina.2 = Output ' diody Config Pina.3 = Output ' diody Config Pina.4 = Output ' diody Config Pina.5 = Output ' diody Dioda_1 Alias Porta.1 'Wygodne aliasy...
Diodę gaś tak jak ją zapalasz. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Config Portb.0 = Input Config Portb.1 = Input Config Portd.5 = Output Przycisk1 Alias Pinb.0 Dioda Alias Portd.5 Przycisk2 Alias Pinb.1 PORTB.0 = 1' to jest podciąganie do Vdd - działaj w tym celu na rejestrze 'PORTX lub PORTX.Y PORTB.1 = 1 Reset Dioda Do If Przycisk1...
Jeśli masz Atmegę 16 to zmień w porgramie $regfile = "m8def.dat" na: $regfile = "m16def.dat" Zakładam, że fuse bity ustwiłeś na taktowanie 8MHz, gdyż tyle masz w kodzie.. Jeśli to nowa ATmega i nie bawiłeś się fusebitami, to zamień w kodzie programu $crystal na $crystal = 1000000 ,gdyż takie taktowanie jest domyślnie ustawione fabrycznie.
Program ma pobierać dane z tablic i ustawiać odpowiednie bity na PORTB. Timer0 ma co 0,5s pobrać z tabeli aktualną prędkość z jaką timer2 ma zmieniać stan na PORTB. Osobno timer'y działają, razem nie chcą . [syntax=vbnet] $regfile = "m2560def.dat" $crystal = 16000000 Config Portb.7 = Output Config Portb.6 = Output Config Portb.5 = Output Config Portb.4...
$Regfile="m128def.dat" $Crystal=8000000 Config porta=Output Porta=&B01010101 Do Rotate Porta,Left Waitms 200 Loop End Procek zapala co drugiego leda ale ruchu brak.Sprawdziłem fuse... mam włączoną 103 jak przełącze na "atmega 128 mode" świecą wszystkie ledy i nic
Chciałeś kod to masz, ale co to zmieni jak na attiny ten program działa a na atmega nie, to jest troche dziwne nie uważasz? $regfile = "attiny2313.dat" $crystal = 4000000 Config Portb.2 = Output Do Toggle Portb.2 Waitms 50 Loop PS: nie zadawajcie pytań czy podłączyłem dobrze bo dobrze podłączyłem. Za wszelkie sugestie dzięki. Aha i druga atmega którą...
Witam , wklejam kod jaki udało mi się wypocić. Miało być tak pięknie a wyszło jak zawsze :-( Ten twój kod jest oczywiście błędny. Po pierwsze, jeżeli stosujesz napięcie referencyjne wewnętrzne, to dla AtMega 8 wynosi ono 2.56V. Zatem poziom napięcia mierzonego podanego na dowolny pin ADC nie może przekroczyc tej wartości. Jeżeli jednak ten warunek...
Dodaj na początku dim flaga as byte. Resztę masz- podprogramy i główną pętlę. 'PROGRAM DO STEROWANIA SILNIKIEM KROKOWYM $regfile = "m8def.dat" $crystal = 8000000 Config Portb = Output 'czyli uaktywniam porty D Portb = &B01110111 'określam który z portów będzie jako pierwszy aktywny Config Pind.2 = Input Pind.2 = 1 Config Debounce = 30 'czekaj...
Proszę, może to Cię zachęci do przeczytania reszty we własnym zakresie. Program "miga" nośną 38kHz co 1ms ;) http://obrazki.elektroda.pl/5631733100_1... [syntax=vbnet] $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 32 $framesize = 32 Config Timer2 = Timer , Prescale = 1 , Compare = Toggle , Clear Timer = 1 Compare2...
Witam wszytkich, Od kilku dni próbuję się nauczyć obsługi modbus rtu w bascomie i na podstawowym programie z helpa się wyłożyłem. Poradźcie dlaczego wpisując mój procesor w poniższy kod wywala mi błędy? Czy ta biblioteka jest tylko pod dany procesor? Proszę podpowiedzcie. https://obrazki.elektroda.pl/7527367800_... [syntax=vbnet]'-------------------------...
Witam. Mam problem z z komunikacją Mojej ATMEGI z wyświetlaczem LCD na porcie C. Na każdym innym działa to bezproblemowo. w przypadku Portu C dostaje na wyświetlaczu czarne prostokąty. Pytanie gdzie jest błąd lub czy przyczyną może być sama ATMEGA (aktualnie posiadana ATMEGA32A PU 1111 szt.4). na każdej to samo. [syntax=basic4gl] $regfile = "m32def.dat"...
Kochani, kompilator (1.11.8.6) wyrzuca błąd: 22 Line : 120 Out of SRAM space , in File : C:\PROGRAM FILES\MCS ELECTRONICS\BASCOM-AVR\CONFIG_AVR-DOS.Ba... Pozdrawiam i proszę o pomoc. idla Jakiego procesora używasz w $regfile ? Błąd dotyczy małej ilości Ram-u.
ale z tego co się już dowiedziałem nie będzie działać na mojej płytce Nie prawda, będzie działał po zmianie kilku linijek kodu. [syntax=basic4gl]$regfile = "8515def.dat" $crystal = 10000000 [/syntax] To zmień na swojego procka i częstotliwość oscylatora, jaki Masz. Na przykład [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 8000000 [/syntax] Tą...
Przerobiłem tak, żeby wysyłał testowo tylko jedną wartość ( losową ) co 8 sekund Dodano po 18 Dołożyłem Clear Serialin0 Com1_str = "" czyli [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 100 ' rozmiar stosu sprzętowego $swstack = 100 ' rozmiar stosu programowego $framesize = 128 $baud = 19200 '************ Uart 0 Config Serialin0...
Jak to mówią diabeł tkwi w szczegółach... $crystal = 8000000 $regfile = "m16def.dat" Config Portb = Output Config Pina.1 = Input Do If Pina.1 = 1 Then Reset Portb.6 End If If Pina.1 = 0 Then Set Portb.6 End If Loop End
Witam. Mam lcd ks0108b 128x64 i chcę zrobić licznik. Chcę napisać program na atmega 644/16 który będzie zliczał czas między impulsami na int0 po czym 3.6 dzelił przez wynik i mnożył razy obwód koła. Początek programu napisałem, skonfigurowałem port na zbocze opadające ale nie wiem ja liczyć ten okres. Proszę o pomoc w tym programie. [syntax=basic4gl]...
a ustawiłeś Fuse Bity?? Bo jeśli nie masz ustawionych to ATmega pracuje z częstotliwością 1MHz. Musisz ustawić Fusy na albo 8MHz na wewnętrznym generatorze albo ustawić Fusy na zewnętrzny kwarc. i mniej więcej kod by tak wyglądał: $regfile = "m8def.dat" $crystal = 8000000 Cursor Off Dim Czestotliwosc As Long Const Licznik = 22336 Config Timer1...
$regfile = "m644pdef.dat" ' definiujemy układ $crystal = 12000000 ' ustawiamy prędkość zegara $baud = 19200 ' ustawiamy prędkość transmisji $hwstack = 200 ' ustawiamy wielkość stosu $swstack = 200 $framesize = 80 'definiujemy podłączenie i rodzaj wyświetlacza LCD Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 =...
Witam Na atmega8 program działa idealnie lecz na atmega 16 nie działa timer2 w ogóle nie zlicza nie mogę go uruchomić.. Czy na atmega16 uruchamia się go innaczej niż na atmega8. [syntax=basic4gl]$regfile = "m16def.DAT" $crystal = 1000000 $baud = 1200 Config Timer2 = Timer , Async = On , Prescale = 128 On Timer2 Zegarek Enable Interrupts Enable Timer2[/syntax]...
"Jak ustawisz minimalną dla 2 stanów to wykresem jest linia prosta" Oczywiście, jak sama nazwa wskazuje PWM to Pulse-width modulation.(modulacja szerokości impulsu) Jeśli zasilisz układ napięciem 24V to przy wypełnieniu PWM=255 będziesz miał 24V. Jeśli ustawisz wypełnienie 50% czyli PWM= 127 to teoretycznie powinieneś otrzymać 12V. Dlatego proponowałem,...
Cały problem jest w tym żeby te dwie ATmegi się zsynchronizowały. Przerwanie od SPI występuje po zakończenia transmisji pierwszego bajtu. Zanim nastąpi obsługa przerwania to pierwszy bajt zostanie utracony. Nie mamy też gwarancji że dwie Atmegi "wystrzeliły" :) równocześnie i Slave nie czyta np. 4 bajtu nadanego przez Mastera. Jeżeli to by była np....
Chce zrobić aby atmega pracowała tak samo jak układ ULN2803 tylko odwrotnie (wszystkie 8Bity) Zrobiłem tak: $regfile = "m16def.dat" $crystal = 8000000 Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Postb.7 Config Lcd = 20 * 2 Ddrc = 00000000 Config Porta = Output Portc = 1 Deflcdchar...
Przeciez powyzej zamiescilem kod programu ktory ma wgrany Atmega $regfile = "m8def.dat" $crystal = 16000000 $baud = 9600 Dim Znak As String * 6 Config Portd.2 = Output Config Serialin = Buffered , Size = 15 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Wait 5 Set...
Jestem początkujący i zmagam się z poznaniem reguły if w programie bascom. Niby wszystko jasne ale przychodzi co do czego to nie działa prosta regułka włączania przyciskiem, diody. Dodam, że robie to na atmega 32. Wczesniej robiłem podobne reguły na atmega8 i takich problemów nie miałem. Co wiec w poniższej regule jest nie tak? $regfile = "m32def.dat"...
aaaa, no dobra, a w programie zmieniłeś plik na "$regfile = "m32def.dat". Wektorami przerwań się nie martw, bo to powinien obsłużyć kompilator, ale musisz mu najpierw wskazać, jakiego procka używasz.
Zrobiłem i dalej lecą same 0 :(( oto kod w 2 Atmega 128 (ten co ma mierzyć): $regfile = "m128def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 32 $swstack = 10 $framesize = 40 Dim W As Integer Dim L As Integer Config Watchdog = 2048 Start Watchdog Reset Watchdog Config Adc = Single , Prescaler = Auto , Reference = Internal Start Adc L =...
Np. tak możesz zrobić:D 'Program pod Atmega8 'S1 pomiedzy PINB.1 a GND 'Taktowanie standardowe 1MHz $regfile = "m8def.dat" 'Atmega 8 $crystal = 1000000 'taktowanie 1MHz Config Portd.0 = Output 'przekaznik Config Pinb.1 = Input 'napiecie podane na PORTB.1 Set Portb.1 'dolaczenie rezystora podciagajacego S1 Alias Pinb.1 'przypisanie nazwie PINB.1...
'///////////////////////////////////////... '// Police Alarm With ATmega8 (Use 4%) // '// Compiler: Bascom 1.11.9.0 // '// Programmer: Behnam zakizadeh // '// Web: www.avr64.com // '// Email: Behnamzaki(at)hotmail.com // '///////////////////////////////////////...
Ok zrobiłem takie coś i jedynie co robi to ściemnia diodę :-( Dane z odbiornika podpięte pod ADC0 w Atmega [syntax=vbnet]$regfile = "m8adef.dat" $crystal = 8000000 'zewn. L:FF, H:D9 Config Adc = Single , Prescaler = Auto , Reference = Avcc Dim Pomiar As Integer Spiinit Config Portb.1 = Output 'TX ON, disable CLK Start Adc '=======================================...
[syntax=vbnet] $regfile = "m16adef.dat" 'mikrokontroler $crystal = 8000000 'częstotliwości oscylatora taktującego mikrokontroler Poziom Alias Pina.7 : Config Poziom = Input : Set Poziom 'wew podciągnięcie do VCC Obudowa Alias Pinc.5 : Config Obudowa = Input : Set Obudowa 'wew podciągnięcie do VCC Led_p Alias Portc.4 : Config Led_p = Output 'po starcie...
Tak jak w tłumaczeniu języków nie da się lub nie trzeba/nie powinno trłumaczyć dosłownie tak i programowaniu dosłone tłumaczenie najczęściej nie jest optymalne. Dlatego proponuję [syntax=c] //$regfile = "m32def.dat" ' procesor //$crystal = 8000000 'kwarc //powyższe ustawić w IDE uint8_t I; //Dim I As Byte ' zmienna I DDRA = 0xFF;//Config Porta = Output...
Nie będę kombinował bo pewnie, jeśli musi to być pin do którego Timer nie ma bezpośredniego dostepu, napisałbym to tak.. Sprawdź: [syntax=vbnet]$regfile = "m8def.dat" $crystal = 1000000 'Atmega 8 fusy E1 D9 => 1MHz internal RC $hwstack = 64 $swstack = 32 $framesize = 32 Config Portd.6 = Output '-----TIMER 1 Config Timer1 = Timer , Prescale = 1 , Compare_a...
Zobacz to i wyciągnij wnioski [syntax=vbnet]$regfile = "m88pdef.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize = 32 '$sim Cursor Off Cls Config Portd.0 = Output Config Timer1 = Timer , Prescale = 8 , Clear Timer = 1 , Compare A = Disconnect , Compare B = Disconnect Compare1a = 62500 On Compare1a Beep Enable Compare1a Enable Interrupts...
Kurde, masz zle skonfigurowany wyświetlacz !!! To samo co w poprzednim moim poście zrób z tym przykładem, następnie zdjęcie i wiadomo co dalej. [syntax=vbnet]$regfile = "m644pdef.dat" $crystal = 16000000 $framesize = 80 $hwstack = 50 $swstack = 50 Config Graphlcd = 128 * 64 , Dataport = Porta , Controlport = Portb , Ce = 2 , Cd = 5 , Wr = 3 , Rd = 4...
W międzyczasie edytowałeś post i przedstawiłeś nowe dane. Mój teraz na razie będzie się tyczył tego co pisało wcześniej. Jeśli chciałbym rozdzielić dwa impulsy na dwa różne piny to zrobiłbym tak: Podłączył sygnał do zewnętrznego przerwania. Kiedy nadchodzi pierwszy plus to ustawiam flagę na 1 i wracam do pętli głównej. W niej tak długo jak pin jest...
Witam, Atmega 8, Timer1. Używam instrukcji LOAD która skraca czas między przepełnieniami timera, a nie mogę uzyskać odpowiednio krótkiego czasu gdyż w pewnym momencie skracanie timera juz ic nie daje. Oto kod: [syntax=vbnet]$regfile = "m8def.dat" $crystal = 1000000 'Atmega 8 fusy E1 D9 => 1MHz internal RC $hwstack = 64 $swstack = 32 $framesize = 32...
W tym momencie jest tylko cos takiego testowego (na różne sposoby probowalem zmieniac stany portów) $regfile = "m128def.dat" $crystal = 14745600 Config Portf = Output Config Porta = Output Config Portb = Output Config Portc = Output Porta = 255 Portb = 255 Portf = 255 Portc = 125 Do Toggle Portf.2 Wait 1 Porta.0 = 1 Porta.1 = 1 Porta.2 = 1 Porta.3 =...
Mam nową at2561 i podczas kompilowania programu bascom wyrzuca error: 202.Po sprawdzeniu w kodach błędów okazuje się że procek nie obsługuje takiej funkcji jak getrc5.Czy to możliwe że taki "mocny" procesor nie obsługuje rc5?Może ja coś robię źle?Proszę o pomoc. Program testowy: Proszę pamiętać o używaniu znaczników syntax . Opcja Listing kodu . Proszę...
Mówisz masz na timerze. $regfile = "m16def.dat" $crystal = 1000000 $hwstack = 32 $swstack = 8 $framesize = 16 Config Timer1 = Timer , Prescale = 1024 Enable Interrupts Enable Timer1 Start Timer1 On Timer1 Odmierz_czas Const T = 6942 Config Portb.1 = Output : Portb.1 = 1 : Led Alias Portb.1 Config Portb.2 = Input : Portb.2 = 1 :...
1. sprawdź taktowanie np. dając miganie diodą co 1s z wykorzystaniem polecenia wait 2. czy testowałeś mój program po zmianie odpowiednich wartości (regfile i crystal)?
$regfile = "m32def.dat" $crystal = 1000000 Config Timer0 = Timer , Prescale = 1024 On Timer0 Tim0_wakeup Enable Timer0 Enable Interrupts Do 'Jakiś program . . . Do Start Timer0 Idle Tim0_wakeup: Stop Timer0 Timer0 = 0 Incr Pamiec Loop Until Pamiec = 5 ' Ma się usypiać 5 razy 'Dalsza część programu wykonywana po przebudzeniu . . Loop Niestety...
No to spróbuj tego: $regfile = "m16def.dat" $crystal = 4000000 $hwstack = 32 $swstack = 32 $framesize = 32 config 1wire= portb.7 Do 1wreset if err=0 then print "PP_ok" ' czy LCD "PP_OK" - co tam masz else print "PP_err" ' j/w endif waitms 500 Loop Napisz o wyniku doświadczenia :D Piotrek
Uzywam bascoma wersji 1.11.7.4 demo, poprzednio uzywalem wersji 1.11.6.2 (ale nie ma definiji nowych procesorow) zalaczam listing programu testowego z procesorem 90s8535 i Atmega16 pracuje, nie chce dzialac z atmega8535 (po zmianie deklaracji uzywanego procesora oczywiscie ), napiecie odniesienia zewnetrzne dolaczone do nozki procesora 1,2V, moze ktos...
Masz tu prosty, sprawdzony, działający program do sterowania portami. $regfile = "m16def.dat" $crystal = 1000000 ' przelicz u siebie te zera :) Dim B As Byte Config Portb = Output Portb = &HFF Waitms 100 Open "comd.1:9600,8,n,1" For Output As #1 Open "comd.0:9600,8,n,1" For Input As #2 Do B = Inkey(#2)...
Do Reset Portb.1------- tu ustawiasz na wyjscie niskie Wait 1 ------- tu czekasz sekunde Set Portb.1 ---- tu ustawiasz na wyjsciu wysokie Loop -------A TU ODRAZU WRACASZ DO POCZATKU PETLI I TAM ZNOW USTAWIA SIE NA NISKIE End Rozumiesz gdzie jest bład? $crystal = 16000000 $regfile = "m32def.dat" $baud = 9600 Config Portb.1 = Output Do Reset Portb.1 Wait...
Jak zwykle czasu nie ma, ale nie mogłem się powstrzymać. Nakręciłem pierwszy klip - ahahahaha :D No musiałem się pobawić edytorem. Efekt to półtora minuty magii :D Ahahaha miałem kupę zabawy z tym :D Przy okazji możesz zobaczyć jak się używa wbudowanego symulatora by zadawać wartości ADC ;) Twój pomniejszony kodzik też poniżej, tylko używając poza symulatorem...
Witam! 1. od początku: pełna deklaracja procesora to: [syntax=vbnet]$Regfile = "m32def.dat" $Crystal = 16000000 $swstack = 16 $framesize = 32[/syntax] "mój" Bascom nie toleruje niepełnych deklaracji. 2. w zakładce WIDOK proponuje włączyć "CodeExplorer", to bardzo ułatwia wyszukiwanie błedów. 3. błędy formalne to: a. cytuję: "[syntax=vbnet]Do If Pina.0...
Mam w projekcie Atmegę128 + PCF8583 + kilka układów I2C (3xADS1110, AT24c1024), dodatkowo dołaczam dwa moduły z Atmega64 każdy. Chcę, aby każdy z mikrokontrolerów odczytywał czas bezpośrednio z PCF8583. Teoretycznie arbitraż jest możliwy, ale u mnie to nie chce prawidłowo działać - zawiesza się komunikacja i programy "stoją". Do testów zostawiłem w...
O K Widzę,że sam muszę sobie odpowiedzieć. Po żmudnych próbach z konfigurowaniem PWM w Bascomie doszedłem do wniosku, że żadna z wersji tego kompilatora nie jest w stanie prawidłowo skonfigurować PWM na procesorze ATMEGA. Trzeba to zrobić przez bezpośrednie oddziaływanie na rejestry. Np.: $regfile = "m16def.dat" 'Deklaracja rodzaju procesora Ddrd =...
Spróbuj wgrać ten kod.[syntax=basic4gl] $prog &H00 , &H00 , &H00 , &H00 $regfile = "m32def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , E = Pinb.4 , Rs = Pinc.7 , Db7 = Pinb.3 , Db6 = Pinb.2 , Db5 = Pinb.1 , Db4 = Pinb.0 Config Pinc.2 = Input 'tego chuba nie używasz? Config Pind.1 = Input Przycisk Alias Pinb.7 'tego chuba nie używasz?...
Ja mam taki program zrealizowany na Atmedze8. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 40 $framesize = 40 Config Portb.1 = Output 'wyjscie triak Triac Alias Portb.1 Config Rc5 = Pind.7 'rc5 pin timer0 Dim Level As Word 'poziom sciemniania 1 - 20 Dim Timer_val As Word 'wartosc timer1 dla sciemniania Dim Command...
$regfile = "m8def.dat" $crystal = 'Częstotliwość rezonatora Config Lcd = 'Sam nie wiem co wpisać Config Lcdpin = 'Konfiguracja LCD Cls Cursor Off Cls Deflcdchar 1 , 32 , 12 , 18 , 18 , 12 , 32 , 32 , 32 Cls Dim A(2) As Byte Dim T(3) As Byte Dim Temp As Byte Config 1wire = Port 'Konfiguracja magistrali 1-wire Do 1wreset 'Inicjalizacja...
Proszę. Można to zrobić na kilka sposobów. Pokazuję taki najprostszy żeby pokazać mechanizm. Kiedy bit w bajcie na danej pozycji ma wartość 1 to pin nadawczy jest ustawiany w stan wysoki i po 500us jest zerowany i znów czekamy 500us. Po tej operacji licznik wskazujący o który Bit w Bajcie nam chodzi jest zwiększany. Bity występują w ilości 8 ale numerowane...
Chyba nie zauważasz różnicy. Po pierwsze jeśli tam pisze Go_lo to na pinie ma być ustawiony stan niski. Można to zrobić tylko ustawiając stan wysoki w rejestrze DDR.x Mniejsza o to bo zrobiłem Ci takie makra jak tam. Po drugie po wpisaniu wartości bitu czeka się ponad 10 ms a nie 10 us - to chyba wydatna różnica? Testnij tak. [syntax=vbnet]$regfile...
To jest przykład dla Atmega8, nie wiem czy pomoże: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portd.0 , E = Portc.2 , Rs = Portc.1 Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Cursor Off Cls Rem konfiguracja portów Dim R As...
Znalazłem coś takiego : 'name : 'purpose : test for M2560 support 'micro : Mega2560 'suited for demo : yes 'commercial addon needed : no '---------------------------------------... $regfile = "m2560def.dat" ' specify the used micro $crystal = 8000000 ' used crystal frequency...
Są Święta więc łap :D https://filmy.elektroda.pl/56_1450976796... Tylko trochę poprawiłem co tam napisałeś bo można by więcej... Możesz tez zerknąć [url=http://bart-projects.cba.pl/bargraf... tę kolekcję - Link. Napisałem w międzyczasie kilka innych i "szybszych" ale nie było czasu wrzucić. [syntax=vbnet]$regfile = "m16def.dat" $crystal = 1000000...
Witam. Mam procesor atmega 8. Napisałem prosty programik zapalający i gaszący diodę. Oto jego treść: $regfile = "m8def.DAT" $crystal = 8000000 Do Set Portd.4 Waitms 500 Reset Portd.4 Waitms 500 Loop Jednak nie zgadzają mi się czasy. Czas świecenia diody jest ok 5 s, a nie jak w programie 0,5 s. Sprawdzałem ustawienia bascom, jest prawidłowo wszystko...
regfile attiny13 bascom regfile regfile attiny2313
migomat bester podajnik drutu alternator słabo ładuje historia połączenie
robienie pakietów 18650 robienie pakietów 18650
Lokalizacja czujnika temperatury silnika APG w Audi A3 Schemat Kenwood TH-77A - gdzie znaleźć?