Gdzies juz chyba widziałem, jak napisałeś coś w stylu, że "ogólnie wiadomym jest, że bascomowe SPISLAVE nie konfiguruje tak jak potrzeba" . Ja o tym czytałem pierwszy raz... Mogę wiedzieć której wersji Bascom używasz jeśli nie najnowszej 2085? W SPI najważniejsze jest to, że to master taktuje slave`a. Dlatego nie bez powodu w komendzie konfiguracyjnej...
To nie Bascom jest przyczyną tylko źle napisany program ;). 1. odczyt timera1 16bit odbywa się po przez rejestr pomocniczy TEMP, ten rejestr jest też używany przez inne procedury i funkcje i jeśli jest użyty to właśnie niszczona jest wartość High timer1 bo ona tam jest wpisana gdy używasz komendy. wpisując tak timer1 do tablicy możesz gubić High timer1....
Chcę napisac własny program z wykorzystaniem Timerów. Na początek proszę o wytłumaczenie dlaczego w poniższym programie: 1. wykorzystano podzial częstotliwości zegara (po preskalerze 256) 250/125 zamiast wykonac jedno dzialanie? 2. uzyto wartość początkową Timera0 = 250 przed Petlą do Loop End . O ile wyjaśnienie podane przez Tomq jest błędne(!) Load...
No to jak się zastanawiałeś nad tym, to powinieneś zaskoczyć o co chodzi... Po prostu należy najpierw wyłączyć maskowanie roku i dnia tygodnia (więc zamiast 8 do rejestru 0 wpisać wartość 0), potem odczytać cały bajt, zamaskować niepotrzebne bity w danym bajcie: najpierw rok i odczytać dzień miesiąca, potem zamaskować dzień miesiąca i odczytać rok -...
Proszę. Jest to przykład zapisu i odczytu zarówno zwykłych bajtów jak też łańcuchów tekstowych inaczej mówiąc napisów w Eeprom. Program i funkcje działają z małymi pamięciami których adresacja mieści się w jednym bajcie. Do tego przykładu użyłem 24C04 Jeśli ktoś chce to może po prostu wpisać sobie jakieś dane do buff(1), Buff(2) itd i tak zapisać. Potem...
Na podstawie zgromadzonych przeze mnie informacji, ściągnąłem z sieci program AVR Studio 4, znalazłem fajną stronkę z nauką typu zapal LED itp. uczę się ale nic mi nie wychodzi bo AVR Studio nie pozwala mi na uruchomienie wpisanych instrukcji assembler'owych i sprawdzenie jak działa, w tym wyświetla mi komunikat, że nie znalazł pliku hex - mimo, że...
http://obrazki.elektroda.pl/5724768100_1... Witam, Aktualnie buduję/remontuje niewielką tokarkę, do zastosowań domowych. Jej mechanika jest dość prymitywna, co za tym idzie nie posiada żadnych podziałek, ani automatycznych posuwów. Wobec tego chciał bym zaopatrzyć ją w liniał, który będzie pokazywał pozycję imaka na wyświetlaczu LCD....
Nie wiem co dokładnie chcesz osiągnąć. Dobrze by było zobaczyć cały string jak on wygląda to wtedy można obrac strategię. Trochę zgadująć podpowiem. Cyfry to zwykłe bajty ale w kodzie ASCII interpretowane jako znaki. 0-9 to w ASCII bajty o wartościach 48-57. https://obrazki.elektroda.pl/7023869200_... String bardzo łatwo można potraktować...
wader_669 i 11111olo -> prawie każda wersja STK200 jest taka sama i nie od niej zależy 100%-towa skuteczność ilości poprawnych programowań procesorów. Wszystko zależy od programu, który programuje procka a w szczególności od jego ustawień ale do nich rzadko kto zagląda. Większość "jedzie" na ustawieniach domyślnych np w Bascomie a potem zdziwienie...
W dokumentacji MCP2515 :D . Chcę tylko zaznaczyć, że ta wartość wyliczona preskalera to nie jest wartość którą masz wpisać do rejestru konfiguracji preskalera. Do rejestru wpisuje się o jeden mniej. Czyli jak częstotliwość chcesz dzielić przez 10 to do rejestru wpisujesz 9. W załączniku masz akrusz excela do przeliczania wartości rejestru preskalera.
Witam Jestem początkujący w bascom i mam pewien problem:cry:.Nie wiem jak wpisać w procedurze bascom wartość napięcia przy jakiej ma reagować mikrokontroler:?:. Pytania dot. programowania mikrokontrolerów proszę zadawać na forum Mikrokontrolery. Poprawiłem temat.
Ja swego czasu znalazłem gotowy program wyliczający wartość jaką należy wpisać do timera w avr.
A jak slave ma wpisać tę wartość do rejestru? Jakim poleceniem?
W przerwaniu robisz Enable Interrupts zanim włączysz Timer0, co może powodować problemy. Poza tym procka taktujesz 12MHz. A Timer0 z preskalera 1024. Czyli Timer0 dostaje 11718.75Hz. W przerwaniu zliczasz do 15000. I to Ci daje okres jak mówisz około 4 sekundy. Czyli na sekundę jest 3750 przerwań. Co oznacza że pomiędzy przerwaniami Timer0 zlicza do...
Hm, spróbuj zmienić enable timer na start timer. Ewentualnie spróbuj wpisać odpowiednią wartość bezpośrednio do rejestru - bascom ma problemy z obsługą pwm w niektórych procesorach (prawdę mówiąć jest tylko kilka, w których PWM działa wszędzie gdzie powinno i jak powinno). A znaczniki code to [code ] i [/code ] :)
To co napisałeś to pewnie bascom ,ale po pierwsze nie używasz przerwania int0 tylko portu jako wejścia . Żeby używać int0 jako przerwania powinieneś po pierwsze skonfigurować jakie zdarzenie na int0 ma wywołać przerwanie zmiana stanu , poziom .Zezwolić na obsługę przerwania int0 i odblokować globalnie przerwania . po wystąpieniu zdarzenia nastąpi skok...
Dla osób które chcą wykonać ten zegar od razu podpowiem, że smużenie to normalka. Proszę spojrzeć na program bascom autora. Prescaler 1, taktowanie wewnętrzne procesora 8Mhz. I proszę sobie obliczyć częstotliwość multipleksowania wyświetlacza. Przecież to idzie praktycznie na maksa. Powinno się zwiększyć preskaler i wpisać wartość początkowa do timera....
to inaczej - jak to wpisać żeby to niebyła pusta pętla tylko żeby program czekał poprostu pewną wartość czasu BASCOM
Dziwne, że Bascom nie zgłosił błędu. Moim zdaniem powinno być: Load Timer0, 5 albo Counter0 = 5 Brakuje również Start Timer0, ale może Bascom i tak go uruchamia. Jedna jak i druga forma jest poprawna choć działa trochę inaczej. Po za tym komenda start timer0 jest zbędna gdyż ustawienie preskalera samo w sobie już startuje licznik. :arrow: Do autora:...
Odpowiedź jest na stronie 82 i 127 PDF ATmegi 32. Po prostu Timer2 ma inne bity ustawiane dla współczynnika prescale niż Timer0. Jeśli zależy ci na Timer 2 to zaprogramuj fo wpisując wartość bezpośrednio do rejestru sterującego Timerem2 czyli do TCCR2. Dla prescale 1024 trzeba wpisać do rejestru 00000111. Bascom doskonale radzi sobie z takim wpisywaniem.
Witam. Twoja wypowiedź jest troche nie dokładna. Zmieniłeś fusebit 'M' na jaką wartośc (?) i który program wystartował? fusebit M był ustawiony jako : Reset vector is bootloader Zmieniłem go na : Reset vector is $0000 Kolega Ture11 uświadomił mnie dlaczego tak powinno być. Po tej zmianie wgrany soft do uC uruchamia się poprawnie. Próbowałem wgrać bootloader...
Wyjątkowo zbałaganiony program. Nie wiem czy Bascom poradzi sobie z tym gosub Przerwanie. Traktujesz to jako procedurę obsługi przerwania, więc na końcu w asm będzie reti, a jednocześnie w programie potraktowałeś to jako zwykły podprogram. Wiele kompilatorów tego nie pozwoli zrobić. Popraw to - przecież zamiast tego Gosub przerwanie wystarczy wpisać...
Nie ma rejestru który by to zliczał. Chyba że podepniesz wyjście OC1A do wejścia innego Timera, np. T0. Tylko że nie masz już Timerów 16-to bitowych a tylko 8-mio bitowe. Praktycznie więc zostaje tylko zliczanie zmiennej. W BASCOMie przerwanie będzie się wykonywało ze 100 cykli. Minimalna wartość jaką możesz więc wpisać do OCR1A żeby nie zwiesić programu...
Nie startuj - zostaw pracujący i po koleji ładuj TL dopiero potem TH i bedzie dobrze. Jeśli zależy Ci na dokładności to liczbę jaką masz wpisać do TL dodaj do bieżącej zawartości tego rejestru. Wartość &HBA (młodsza cześć z 55482) pozostawia dość spory zasób czasu przed przepełnieniem TL. Wypadałoby całe ISR timera napisać w ASM - i jak to kolega jony15...
No tak ale jak patrząc to chyba moje jest krótsze. Może się źle wyraziłem z tymi dzielnikiami napięcia, ale chodziło mi o to aby wartość z ADC odczytać tak abyś: gdy naciskasz panel dokładnie nad pixelem 0 / 0 to wartosc z ADC masz x = 1, y = 1 zaś gdy na pixelu w moim przypadku 128 / 64 to wartość z ADC masz x = 129, y = 65 Wtedy łatwo zapamiętać i...
1. OCR1A = Getadc(3) 2. OCR1A = 255 - Getadc(3) Jest aż tak źle? Tutaj nie chodzi o zmianę trybu PWMa bo po zmianie trybu zostanie wygenerowany jeden impuls. Nie wiem skąd*. Ale tak napisał Tomekddd. Chodzi o odwracanie fazy na driverze. Jeżeli można by to odwrócić zmieniając tryb PWMa to oczywiście lepiej by było to tak zrobić niż pisać "255 - xxx"....
Pięknie - ale nie doczytałeś ; chodzi o odczyt z WNĘTRZA programu. Czyli w czasie działania programu potrzebna mi ta informacja. Oczywiście - można na wpisać "na stałe", jednak przy dowolnej modyfikacji trzeba będzie zmieniać. Nie o to mi zatem chodzi. Rzecz w tym, żeby pisząc program nie trzeba było co chwila ręcznie sprawdzać jaki dana wersja ma rozmiar,...
Zasadniczo macie rację, ale ja potrzebuję zapisać eeprom bit po bicie a nie bajcie i dlatego wygodniej jest mi wpisać zera i dopiero pracować na takim "wyczyszczonym" obszarze pamięci. druga kwestia, to fakt, iz w eepromie bedą w trakcie pracy zapisywane różne wartości, a przy restarcie muszę się tych danych pozbyć, to tylko kwestia przyjętej logiki...
Kolejny element układanki... łopatologicznie ;) bity CS10 do CS13 określają częstotliwość pracy timera, inaczej mówiąc wyznaczają czas aktualizacji (zwiększenia o jeden rejestru TCNT1). W zależności od trybu pracy rejestr ten jest porównywany z zapisanymi przez użytkownika nastawami w OCR1A (kanał A ), OCR1B (kanał B), OCR1C (dla uproszenia maksymalna...
Dzisiaj na stronie elportalu znalazłem komentarz na temat bascoma i ATtiny. Bascom nie obsługuje prawidłowo ATtiny. Start Timer0 czy stop Timer0 nie działa (przynajmniej dla ATtiny2313). Trzeba wpisać do odpowiedniego rejestru właściwą wartość żeby timer wystartował itp. Trzeba się zapoznać z dokumentacją. Rejestry sterujące timerami są podzielone na...
Można. Służy do tego opcja(w opcjach) Options/Compiler/Misc Tam jest środkowe pole: Byte end(hex) i jakaś wartość. Właśnie ta wartość informuje kompilator ile ramu ma maksymalnie wykorzystać. Domyślnie jest 50(hex = 80 bajtów) w uC co mają 128 można tam wpisać 7F a w twoim przypadku nawet FF(256) ale ustaw troszkę mniej i jak przekroczysz znowu limit...
Coś mącisz a całego kodu pokazać nie chcesz. Przecież taki zapis nie ma sensu bo Round zaokrągla typy Single więc nie może zaokrąglić Long do Long do A a na końcu piszesz : Obsługa wyświetlacza LED zrealizowana jest prawidłowo, gdy napiszę B = 123456, to to się ładnie wyświetla. Może zapisuj wynik do B jeśli to B ostatecznie wyświetlasz :D Co to za...
wiem już chyba w czym rzecz, chyba tajmer1 musi zbyt dużo zliczyć impulsów aby nastąpiło pierwsze przerwanie od niego a on właśnie obsługuje wyświetlacz,muszę chyba wpisać wartość wstępną do niego przed pierwszym przerwaniem.... Dodano po 4 zmieniłem prescale tajmera 1 z 1024 na 1 i jest oki :-)
Witam. Rozwiązanie jakie proponuje K_O_N_R_A_D jest bardzo ciekawe. Tylko jak zrobić żeby SPI odczytywał dane. Czy należy wpisać wartość 0 do rejestru SPDR i po zakończeniu transmisji odczytać ten rejestr (powinno się w nim znajdować to co zostało odczytane z lini DIN) ? Niestety moje układy sie nie komunikują dlatego sam nie mam możliwości sprawdzenia...
serdeczne dzięki, jednak nie wiem niestety pewnie podstawy - w jaki sposób zapisać coś kolejnego, tzn. jeśli np. chce wysłać to moje 12301234 do eeprom I2cstart I2cwbyte Adresw I2cwbyte 1 I2cwbyte 3 (czy tu można wpisać 12301234) ?? I2cstop i dalej - jeśli teraz chce zapisać wartość 14501234 jako następną wartość w eepromie to nie wiem jaką kolejną...
Pierwszy bit oznacza co za dane idą do SAA1057. Jak jest "1" to dane konfiguracyjne. Jak "0" to częstotliwość. Czyli: 1 010101010101010 to będą dane konfiguracyjne A 0 010101010101010 to będzie częstotliwość. Żeby wklepać częstotliwość to trzeba wysłać liczbę 16-to bitową gdzie najstarszy bit ma wartość 0 a pozostałe oznaczają częstotliwość. Skoro pierwszy...
Czytam i czytam o tym trybie ctc i wiem tylko tyle że trzeba wpisać do rejestru OCR1A wartość 100 i jeśli licznik doliczy do wartości w OCR1A to ma zrobić toggle czyli zmienić stan wyjścia OC1A na przeciwny. Problem w tym, że nie wiem jak to zapisać w Bascomie. Czy to ma być jakoś tak?? $regfile = "m8def.DAT" $crystal = 8000000 Config Lcdbus...
Dziękuję Kolego za odpowiedź. Problem rozwiązany, tylko nie do końca rozumiem jego działania. Program wygląda tak: $regfile = "m8def.dat" $crystal = 4000000 Config Pinc.1 = Output Config Pinc.2 = Output Config Pinc.3 = Output Config Pind.2 = Input Set Portd.2 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portd.1...
jeśli stosujesz procesor at90s8515 i wyżuca ci błąd przy użyciu portu c to zanczy że nie poinformowałeś bascoma jakiego procka posiadasz. wejdz w opcje i tam wybież z listy. Pinc.1=input (Pinc.1=0 - równoznaczny zapis) nie wiem co to znaczy ale chba nie działa configuracja pinów odbywa się przez config portx = input / output lub dla poszczególnych...
Nie gniewaj się , ale moim zdaniem zakręciłeś to jak "kogel mogel" jeżeli chodzi ci o wysyłanie tekstu to prosciej będzie tak>>> najpierw ustal jaka jest wartość zmiennej <A> po naciśnięciu różnego klawisza, ( 0...15) po to żebyś wiedział gdzie wpisać wymaganą literę w tabeli "teksty". PS: zamiast kombinować zacznij używać gotowych funkcji,...
Muszę odpowiedź poprzedzić krótkim wstępem. W Bascom do każdego obsługiwanego mikrokontrolera jest plik definicji. Można w nim wyczytać ciekawe informacje, ale trzeba wiedziec jak go otworzyć. Chodzi o to że edytor Bascom formatuje tekst i przy zamykaniu takiego pliku mógłby go tak zmienić że byłby nieprzydatny. Z drugiej strony nie jest to przeciez...
Witam jestem tu nowy aczkolwiek zaawansowany w bascomie AVR Musisz ustawić prescaler i wpisać wartość counter0 lub timer0 żeby przerwanie przychodziło co określony czas. Osobiście się z ty nie zgadzam bo jeśli INT0 to nie timer tylko podanie standardowo zera na jedno z wejść w 8515 jest to PD2 lub INT1 PD3. Ja osobiście dałbym waita pod koniec przerwania...
Może najpierw zacznę od tego co muszę zrobić. Potrzebuję generatora impulsów PWM, ma mieć kilka częstotliwości do wyboru z góry zdefiniowanych, po wybraniu jednej częstotliwości i naciśnięciu startu wypełnienie ma się zmieniać powiedzmy co 5 sekund o 5%. No to czeka cię zabawa z opcjami Prescaler i Pwm . Bo będzie to najprostszy sposób dla Ciebie....
Jednak zostane przy kwarcu zewnętrznym, i jeżeli w kodzie mam crystal = 11059200 to rozumiejąc mam użyć o częstotliwości 11059200Hz. Jeżeli pozostaniesz przy kwarcu zewnętrznym (11.0592 MHz), to nie tylko musisz to wpisać w kodzie, ale także stosownie do tej freq. przeliczyc watrość: Const Licznik = xxxx ; założona na początku wartość 22336 odnosi...
Witam! Potrzebuję działającego modułu do transmisji danych przez ethernet. Z różnych powodów wybrałem nm7010a, tylko .. nie wiem jak się do niego zabrać. Mam za sobą godziny wertowania stron www, mam naściągane pdfy i dalej nie wiem jak ten moduł uruchomić. Potrzebuję prostej instrukcji co do modułu trzeba po załączeniu przesłać i w jaki sposób żeby...
Kilka dni już poświęciłem , google i elektroda brak info jak wysłać timer1 na pin uP. Chyba to jest zbyt skomplikowane , skoro nigdzie nie ma o tym informacji poza lakoniczną informacją pomocy bascom ============== ========== 'Możesz odczytywać i zapisywać dane z licznika TIMER1, za pomocą 'specjalnej zmiennej systemowej: W = Timer1 Timer1 = W =============...
Cześć. Przeglądałem archiwum ale nic dla siebie konkretnego nie znalazłem. Mam problem z programem (konfiguracją przerwań). Chciałem wykonać mały i prosty licznik obrotów. Wykonałem przetwornik obrót/impulsy na diodach, zakładam że nie występują w nim "drgania styków" :) Otrzymany sygnał chciałem podać na wejście INT0 i za pomocą Timera zliczać pojawiające...
Witam serdecznie! Mam wielki problem z bascomem i magistralą i²c. Otóż kiedyś, gdy miałem bascoma 1.11.7.7 magistrala i²c działała bez problemów, teraz mam Bascoma 1.11.9.5 i nie mogę się skomunikować z żadnym układem i²c. Zegar i pamięć eeprom w ogóle nie odpowiadają, testowałem na 2 płytkach (jednej własnej konstrukcji, druga BASCOM...
Witam. Tak poradziłem sobie z uruchomieniem. Myślę, że warto opisać tutaj dokładnie co i jak z tym HC-05. A więc jeśli ktoś ma sam układ HC-05 bez dodatkowej płytki z goldpinami, to powinien podłączyć go według tego schematu: http://obrazki.elektroda.pl/7988822600_1... Oczywiście diody LED nie są konieczne. Jednak polecam podłączyć jedną...
witam. w związku z zapytaniami na meila odpowiem na ile mogę tu(być może komuś się to przyda. Jesli gdzies walnołem jakis bład prosze o wybaczenie:) już dawno projekt zakonczony a nie chce mi się na nowo teraz wszystkiego instalować i sprawdzac. na początku zanim zacząłem co kolwiek pisać podpatrzyłem terminalem (RTU) przes rs232 co tak naprawdę wysyła...
Witam. Odnawiam temat gdyż po długiej przerwie znowu postanowiłem zmierzyć się z tym wyświetlaczem na Lc7582 . I udało się :D Określiłem już pozycję każdego segmentu. Program pisany w Bascomie wielokrotnie zmieniałem upraszczając go i zmniejszając program wynikowy. I tu spotkała mnie niemiła niespodzianka. Próbując usunąć wcześniej zadeklarowaną zmienną...
Cześć. Prosze o pomoc w rozwiązaniu problemu, a mianowicie mam problem przy konfiguracji klawiatury. Nie moge ręcznie wpisać kodu np. 1234, tylko program sam dobiera mi kod ( caly czas podaje jedna liczbe"1", tak jak bym ja cały czas wpisywał) kod wtedy jest ustawiany na 1111, ale jeżeli zmienie wartość na "k=2" w miejscu zaznaczonym w kodzie to program...
tu mozna zablokować wygaszanie ;---- UWAGA modyfikacja----- ;setb bPowerSave ;ustawienie tego bitu powoduje przejście ;w tryb oszczędzania energii(wygaszenie wyswietlaczy) ;średnik na początku spowoduje pominięcie tego polecenia ;tym samym nie będzie włączany tryb "Power Save" tu można zmienić tryb wyświetlania po włączeniu zasilania...
tak - takimi programikami można sprawdzić, i wartość należy zawsze wpisać do rejestru przy starcie każdego programu. To jest rejestr w pamięci RAM a nie EEPROM. Nie jest to też Fusebit. Dodano po 2 ale wiesz co? ja bym na twoim miejscu sprawdził ten procek z kwarcem = 8MHz czy przypadkiem się nie okaże że jednak też nie działają wyższe prędkości. Może...
Tak jest możliwe. Skoro otrzymujesz za duży czas to zmniejsz wartość wpisywana do timer0 (nie znam bascom więc nie wiem za co który rejestr odpowiada wartość wpisana do timer0, aczkolwiek 40kHz otrzymasz bez problemu).
I to ja ponoć jestem uszczypliwy:D Zaraz będzie pytanie co tam wpisać, podpowiem wartości wyliczone w/g datasheeta.
$crystal to parametr dla kompilatora informujący o częstotliwości jego pracy. Nie jet to wartość przypadkowa . Możesz jedynie podłączyć kwarc 16MHz ustawić odpowiednio fusy i wpisać $crystal=16000000
Jak można wpisać wartość do zmiennej typu string *7 za mocą numerycznych klawiszy ?
Witam W tym rejestrze tylko dwa bity dadzą się zmienić i przy okazji odpowiadają one za rozdzielczość więc wpisanie do rejestru wartości 63 dzisiętnie lub 3F hexadecymalnie załatwia sprawę. -- pozdrawiam
Tryb CTC należy ustawić zgodnie ze stroną 112 PDF. Należy dokładnie przeczytać tę stronę i okoliczne. Potem ustawić odpowiednie bity w odpowiednich rejestrach. W Bascomie robi się to np. tak: set TCCR1B.wgm13 i tak dalej. Bascom nie ma gotowych instrukcji na wszystkie możliwe tryby pracy timerów. Ale pozwala na ustawienie tych trybów "ręcznie"- przez...
Zerknij tutaj: http://www.elektroda.pl/rtvforum/topic35... Pozdrawiam...
mam pytanko czemu jeżeli pisze tak jak kolega tłumaczy portd.0 = portd.0 * 2 to kompilator w tym widzi błąd? chyba że to źle interpretuje Bo musisz mnożyć zawartość całego portu. Jednego bitu nie możesz pomnożyć przez 2. Poprawne więc będzie portd=portd*2 A i jeszcze na początku wpisz do portd wartość 1 :P
Dla 4 bajtów kod kolegi manekinen'a będzie działał poprawnie(kol. wowka pisał, że chce zrobić A = &HAABBCCDD) ponieważ zmienne Nazwa i A(1) A(2) A(3) A(4) znajdą się w tym samym miejscu w pamięci więc zapisując do Nazwa &HAABBCCDD otrzymamy tak naprawdę A(1) = &HAA A(2) = &HBB A(3) = &HCC A(4) = &HDD. A tak przy okazji powinno...
wpisanie 0xFF (=$FF) do DDRA ustawia wszystkie piny portu A jako wyjścia. Pierwsza linijka wczytuje do r24 wartość $FF, druga zapisuje wartość r24 do DDRA.
Witam. W przerwaniu wpisałeś : Timer1 = 131 do zliczenia zostało 65536 - 131 = 65405 Przy wpisaniu do Timer0 tej samej wartości do zliczenia pozostaje : 256 - 131 = 125 impulsów. Myślę, że dobrze zrozumiałem Twój post.
Dla kwarcu 4MHz jest to prescaler 64 i początkowa wartość licznika: 193 Dla kwarcu 8MHz prescaler to: 64 i początkowa wartość licznika: 131 To pokazuje kalkulator. Chciałoby się zakrzyknąć : a nie mówiłem :-P Aby wpisać do Timer2 początkową wartość, to używamy poleceń: TCNT2=początkowa_wartosc Timer2= początkowa_wartosc Counter2=początkowa_wartosc...
Już z wypowiedzi z pierwszego postu wnioskowałem sobie coś o Twojej osobie. To jednak zostawię. Żeby procesor odliczył poprawnie 500ms za pomocą funkcji Waitms to trzeba mu podać rzeczywiste taktowanie uC a nie takie jak Ty myślisz że masz albo chciałbyś mieć. To z tego powodu że przy taktowaniu 1MHz zegar musi tyknąć 500 000 razy a dla taktowania 8MHz...
Na początku programu wpisz z jaką częstotliwością jest taktowany mikrokontroler. np. "$crystal=8000000" lub inną z jaką jest taktowany uC. Niestety nic to nie dało wpisywałem różne wartości . Masz wpisać rzeczywistą wartość taktowania uC.
Aby wszystko było OK to obie wartości (TCNT1H i TCNT1L) muszą być użyte, przy czym należy najpierw wpisać TCNT1H. Tylko że BASCOM to robi samodzielnie więc nie w tym problem. Dodano po 2 Daj cały kod bo nie bardzo widzę w czym problem. A skąd w ogóle wiesz że zmienna jest zapisywana dwa razy?
Tak, tyle mam. Gdybym mniał mniejszy, to bym mniejszą wartość wpisał :)
A jakie wartości proponujesz wpisać? Pozdrawiam
1. Zmienna jest typu word bo żeby przy aktualnych ustawieniach zmierzyć ~750ms trzeba zliczyć 2900 przerwań. Poza tym obsługa tej zmiennej jest poza obszarem wyłączenia przerwań i i tak zajmuje parę taktów uC. 2. Nie po to używamy timera żeby jego zadania wlepiać do pętli głównej 3. Load Timer0 może mieć sens z wartością bliską 0, np. 5, bo wtedy do...
Następna podpowiedź :P Na otwartym oknie Bascom wciśnij na klawiaturze F1 żeby otworzyć okno Help`a W zakładce Index wpisz "$DBG" i może tam znajdziesz odpowiedź na Twoje pytanie :P W języku C jeśli zmiennej nie zainicjujesz jakąś wartością to ona ma nieustaloną wartość, więc jeśli chcesz żeby miała zero to musisz napisać np. "char myChar = 0". W Bascom...
Podejrzewam, że chodzi o 8 bitów z czujnika interpretowane do tej pory w C jako int8_t. :arrow: wader_669 Reprezentacja binarna - zobacz [url=http://pl.wikipedia.org/wiki/Kod_uz... uzupełnieniowy do 2 Przeliczanie - wpisz te 8 bitów do 16-bitowego integer-a i jeżeli jest więcej niż 127 to odejmij 256.
W każdej wersji da się zmienić prędkość przecież to nic innego tylko wpisanie odpowiedniej wartości do rejestrów i można to zrobić z poziomu bascoma lub wstawki asemblerowej .
Witam. Uważam, iż wartość Timer1=64700 wpisana w sub programie Cols powinna być najpierw wpisana w programie głównym. Skąd taka wartość ?
Jak przerwanie? To ma działać z automatu czy na przerwaniach? Bo jak na przerwaniach to musisz zerować w nim licznik, bo od ocr2b nie ma opcji ctc. Najlepiej zrób tak : ustaw licznik w tryb ctc i do ocr2a wpisz odpowiednią wartość skracającą cykl, do ocr2b wpisz dowolną wartość od 0 - ocr2a, ustaw bit COM2B0, włącz licznik z odpowiednim preskalerem....
...potem zmieniam program i chce ta wartosc z eepromu wpisac do zmiennej b, czyli... a co to znaczy zmieniam program u ciebie ???? wgrywasz nowy skompilowany wsad do procka? czy co???? a jeśli wgrywasz drugi - to czy zadbałeś o to aby przy tej okazji nie był kasowany eeprom ? czy nie dasz rady dokonać takich testów za pomocą jednego programu w procku...
Rozumiem, czyli zmienna String to jakby ciąg zmiennych bajtowych stanowiący całość i w programie instrukcja: IF zmienna_string_1znak(to jakby jedna zmienna bajtowa, tylko inaczej interpretowana, bo nie mogę do stringa w programie wpisać prosto wart. liczbowej, a jedynie literę, która reprezentuje ową wartość liczbową) = "a" then... jest równoważna...
To jaka wartosc mam wpisac przy wew oscylatorze attiny13?
16 (liczba nie cyfra) ponieważ temperatura odczytywana jest z dokładnością do 4 cyfr po przecinku, dlatego odczytaną wartość trzeba podzielić przez 16 (przesunąć o 4) Bd(1) = 1wread(9) tu do Bd jest wpisanych 9 bajtów ( liczba bajtów w nawiasie) odczytanych przez 1wread(9) z czego 2 pierwsze to temperatura
Wpisz do $crystal taka wartosc jaka masz. Jezeli masz fusy na wew generator to wpisz 1MHz. Set Pind.1 Set Pinc.1 Set Pinb.5 BZDURA! Ile można powtarzać? Rejestr PORTX służy do wystawiania 1 lub 0 na port. Rejestr PINX służy do sprawdzania stanu danej końcówki portu. Rejestr DDRX służy do ustalenia czy port ma być wyjściem czy wejściem. Czyli zamiast...
Rejestry przechowujące czas po uruchomieniu mają przypadkowe wartości. Musisz najpierw wpisać czas do zegara.
Błąd kompilatora. Po wykonaniu Config Timer0 nie jest zapamiętywana bieżąca zawartość rejestrów TCCR0x wewnątrz kompilatora. Przy wywołaniu Start Timer0 odtwarzana jest wartość 0 w rejestrze TCCR0B, a powinno być wpisane 5. Zgłosić do działu wsparcia i czekać na poprawienie. A tymczasem zamiast START i STOP: skonfigurować licznik, zapamiętać zawartość...
Stosy to dla mnie czarna magia, wiem tylko, że każdy przeskok wymaga zapisania adresu zwrotnego, ale nic poza tym :oops: No przy takim podprogramie to 1 megabajtowy stos to za mało :D, to się chyba nazywa rekurencja: [syntax=basic4gl]Petlapomiarowa: If Impulsy < 15 Then 'Jesli nie ruszono, wyswietlaj dalej napiecie Gosub Pomiaradc If Konwersja >...
odnosnie zegarka to ja bym to zrobil na timer1 - 16 bitowy licznik, i uzaleznil to od przepelnienia tylko nalezy ustawic preskaler na 256 wpisac poczatkowa counter=conter+34286 oczywiscie przy rezonatorze 8 MHz 8000000/256/(65536-34286) = 1 sekunda pozniej tylko zliczanie a i jeszcze jedna sprawa nalezalo by zmienic wartosc dwojkowa na kod BCD :)
Wojtek - wchodzisz tutaj: [url=http://www.frank-zhao.com/cache/avr... z kalkulatorem 16MHZ z preskalerem 1024 oznacza że: - 1 sekunda nastąpi po 15625 cyknięciach timera - przerwanie następuje przy przepełnieniu jeśli wybierzesz OVERFLOW, ale może tez nastąpić przy COMPARE, od tego zależy jaką wartość wpiszesz do timera (czy odejmiesz...
Zapraszam do mojego tematu [url=http://www.elektroda.pl/rtvforum/to... Znajdziesz tam to czego szukasz :) Podpowiem tylko że żeby coś zmienić w DSie, to i tak musisz wszystkie wartości załadować do niego ponownie, tj. dzien, miesiac, rok, weekend, godziny, minuty, sekundy. Nie idzie wpisać jednej wartości.
Program wyświetla to co chcesz ale w symulatorze to trwa bardzo bardzo długo. i Teraz ja licznik odlicza 100 impulsów to musisz pozmieniać obliczenia. Podczas symulacji w warunkach wpisz mniejsze wartości to się szybciej doczekasz tego wyświetlenia na lcd albo zwiększ zmienne ręcznie podczas symulacji. sygnał 125khz do generowania PWM 1,25khz. Nie rozumiem?...
O ile dobrze zrozumiałem idee to cyklicznie negujesz wartość poprzednio wpisną do portu. Nie znam AVR ale może to być taki przypadek jak w 51 , Ustawianie portu polega na wpisaniu wartości do rejestru, ale odczyt następuje z pinów procka. Podciągając lub nie pin rezystorem do +Vcc a sterując zerem, to nawet ustawienie pinu na zero przy odczycie zwróci...
Jak w tytule, korzystając z funkcji DTMF out w Bascomie udało mi się wygenerować "jakiś" sygnał. .................. W moim programie nie ma żadnej instrukcji $crystal bo nie wiem czy powinna być. Podaję kod programu odpowiedzialny za wysyłanie DTMF: Jeżeli w programie /listingu nie ma podanego taktowania lub wybranego processora oraz wartości dla:...
Preskaler 64 a wartość wpisywana do timera to 49911. Wtedy otrzymasz sekundę( pamiętaj aby wartość wpisać tak: counter1= counter1 + 49911).
Prosze bardzo: 'Program regulujący prędkość obrotową silnika DC 12 V 'Do sterowania wykorzystano sygnał PWM 'Częstotliwość przebiegu PWM ok. 254 Hz - 8 MHz/510/64 'Przycisk S1 zwiększa prędkość obrotową silnika 'Przycisk S2 zmniejsza prędkość obrotową silnika $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal...
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...
Zabrakło ci 1 bitu bo wpisałeś tylko 7, a nie 8: Portd = &B1111111 Tak się nie reguluje szybkości: Timer0 = 200 lub 0 Wywal to, preskaler 1024 to i tak bardzo szybko jak na silnik krokowy, no chyba że procesor działa na 1MHz (ale to też szybko) Nie może być wartości 0: If Kropy = 5 Then Kropy = 0 Popraw na 1 bo twój Select Case nie uwzględnia cyfry...
prawdopodobnie źle ustawiłeś prędkość kwarcu. jęsli masz podpięty kwarc (lub załączony oscylator rc) to musisz ustawić tę częstotliwość w opcjach. options>chip>communication i tam wpisać poprawną wartość.
Fusebits KL zostawiasz bez zmian, A987 ustawiasz na 1111 (z rozwijanej listy wybierasz taką opcję). Dodatkowo ustawiasz bit H: CKOPT na 0 (0 oznacza "włączony") i wyłączasz JTAG w bicie J (JTAG Disable) Co do Lockbits - nie zmieniaj, zostaw tak jak są. Wartości które tam masz wpisane umożliwiają odczyt pamięci programu i jej weryfikację Pamiętaj, że...
Za pewne nie wziąłeś pod uwagę fuse bitów które oryginalnie ustawiają zegar tak aby pracował z częstotliwością 1MHz. Wystarczy wpisać magiczne: $Crystal = 1000000 i po kłopocie :) W bascomie nie robiłem nic kilka lat ale oprócz dyrektywy crystal w programie mozna tez ustawic wartosc kwarcu w ustawieniach kompilatora Co do wypowiedzi poprzednika, zapoznaj...
:) Komenda mod to taka reszta z dzielenia czyli: zmienna = liczba mod 4 zmienna - miejsce gdzie zostanie wpisana reszta z dzielenia liczba - zmienna która jest dzielona przez 4 (w miejsce 4 możesz wstawić inną liczbę lub zmienna) Dodatkowo w Bascomie są dwa rodzaje dzielenia znak / i \ pierwszy (/) używamy do dzielenia z resztą (w przypadku zmiennej...
Równą częstotliwości jaką dostaje od prescalera. Tylko w jakim celu skoro taka sytuacja nigdy nie wystąpi? Wartość którą wyrzuca adc to 512+-320, potencjometr jest mechanicznie ograniczony. Jak wpiszesz wartość 512+320 do 8 bitowego rejestru ?
atmega wpisać wartość wpisać wartość napięcia wpisać wartość napiąć
passat antena separator grzałka ceramiczny sztuka elektrotechniki
Słaby bas w Onkyo A-35 - przyczyny i rozwiązania Transformator głośnikowy do wzmacniacza lampowego 12W push-pull