Nie ma, timer2 na as i liczysz na piechotkę , oczywiście kwarc musi być podłączony (32768 na osci osco).
widze ze chyba nikt nie rozumie kolegi. Mi sie chyba w koncu udalo. Chodzi tobie jak zbudowac ten prosty programator i ustawic go w bascomie. Tu masz linka http://www.avrprojects.net/articles.php?...
Dokładnie Kolego:)
Jeśli napisali, że dostaniesz, to przyślą razem z programatorem. Jeśli ich nie dostaniesz, to wtedy będziesz się martwił i pisał do producenta.. ;) P.S. Wykasuj ten załącznik i link do chomika, bo jak wpadnie MOD, to i tak to ładnie posprząta, a Ty możesz tylko bana zarobić (regulamin pkt.1) ;)
F4, wybrać typ procesora tak jak pisali koledzy wyżej i kliknąć to: http://obrazki.elektroda.net/9_125426753... A potem kliknąć „Write Buffer to flash ROM" (jest 2 przyciski w prawo).
Przerwanie przerwie wykonanie instrukcji Wait. Po wykonaniu podprogramu obsługi przerwania uC dokończy wykonanie instrukcji Wait. Wniosek - instrukcja Wait nie wstrzymuje działania uC.
Wielkie dzięki e marcus, naprawdę mi pomogłeś. Mój program jest już niemalże na ukończeniu jednakże mam jeszcze jeden kłopot... Trudno tu "zgadnąc" przyczynę nie widząc całego programu. Wielokrotne zaliczenie akcji przycisku może byc w pierwszym rzędzie spowodowane fenomenem "Switch bounce". Zapobieganie temu zjawisku zwane jest 'DEBOUNCE'. Patrz odpowiednia...
Wszystko zależy jak rozwiązano w danym przypadku sposób liczenia interwałów taktowania zegara, ale typowo w elektronicznych układach odmierzających czas są montowane te typowe kwarce 32768 kHz w cylindrycznej oprawce. Owe kwarce znajdziesz w zegarkach czy to wskazówkowych kwarcowych z budzikiem czy też w płytach głównych PC :) Jeżeli przycisk masz na...
... Może Bascom w ogóle nie potrafi tej 16tki odczytać? Pozdrawiam, Damian. Bascom potrafi , tylko Ty nie rozumiesz jak działa instrukcja I2creceive :( A działa tak: I2creceive 68 , W 'i2cstart 'i2cwbyte 68 OR 1 , czyli 69 'i2crbyte W 'i2cstop Z tego jasno wynika , że zawsze odczytasz tylko jeden bajt i zawsze będzie to pierwszy bajt z Twojego PCF-ka...
Piotrusiowi chodziło o to żeby w tytule postu dopisać ale LCD to już kolejna instrukcja i musi być poprzedzona dwukropkiem jeśli jest napisana w tej samej linii. http://obrazki.elektroda.pl/6600589200_1... Miłego dnia
Nawet jeśli nie programuje się w Bascom to warto wiedzieć że ma taką WIKI. Wszystko na jednej stronie bez przewijania Helpa. Tam opisana każda instrukcja z właściwym syntaxem i przykładami. Otwiera się ze skrótu szybciej niż Acrobat Rider hahahaha :D Raz trzeba zobaczyć http://wiki.mcselec.com/bavr/BASCOM-AVR_... ..i nacisnąć PULSEIN - tam są odpowiedzi.
instrukcja Pinx.y służy do odczytu stanu portu natomiast Portx.y do ustawienia stanu na porcie
Instrukcja Wait nie stopuje procesora. Procesor odlicza czas poprzez zmianę wartości rejestrów a więc działa. A skoro działa to powinien także odczytać informację, że nastąpiła sygnalizacja od przepełnienia Timera. Spróbuj zastosować tą instrukcję. Tylko nie wywołuj jej w obsłudze przerwania a w pętli głównej. Bo gdybyś wywołał jej obsługę w przerwaniu...
wcale parametr dla instrukcji waitms nie musi mieć max. 255 tylko max na pewno jest więcej wydaje mi się że coś koło 65000. W Bascomie dla uK MCS51 parametr ten miał właśnie max. 255, ale w bascom avr już ta instrukcja była poprawiona. Program wygląda ok, jeśli w ogóle żadna dioda się nie zapala to jest coś ze sprzętem. Mogę Ci tylko podpowiedziec że...
Tak się zastanawiam, czy ten programator który obecnie posiadasz to jest USBAsp ? Do obsługi tego programatora masz program PROGISP 1.72, ten programik oprócz ATMEG obsługuje różne pamięci i parę mikro kontrolerów serii MCS51. Tu jest dwu strona instrukcja w języku polskim do tego programu. -> [url=http://www.smartrobots.pl/download/...
Odpowiedzią na twoje kłopoty jest instrukcja DEBOUNCE, gdyż: 1. Potrafi wywoływać podprogramy przy dowolnym stanie linii portu, 2. Przycisk raz naciśnięty i puszczony wywołuje podprogram tylko jednorazowo, 3. Filtruje drgania styków przycisków które potrafią narobić niełego bigosu początkującym, 4. Jest elegancka, pewna i uszyta "na miarę". PS. Atmega...
Witam... Można to zrobic na wiele sposobow. Sa bardziej lub mniej prymitywne. W zaleznosci od potrzeb stosuje sie rozne metody "detekcji", "programowych blokad" itp Ja zrobilbym to np tak: ----------------------------------------... 'Blokada zadeklarowana jako zmienna bitowa If P1.1 = 0 Then Goto Instrukcja blokada...
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...
"MArSTER_1 napisał: Spróbuj w kodzie Slave usunąć instrukcję SPIINIT. No to już jest jakaś wiedza szamańska ;)" Nie jest to wiedza szamańska. Opierałem się na Helpie Bascoma , w którym wzraźnie napisano, że wykonanie instrukcji SPIINIT powoduje: "In hardware spi mode the SPIINIT statement will set the SPI pins to : SCK = Ouput MISO = Input MOSI = Output"...
Tam też był błąd. I nadal jest tylko 7 jedynek. Ale to akurat na ma znaczenia. cytat z helpa Instrukcja RESET Przeznaczenie: Ustawia określony bit w stan 0. Ustawia bit a nie bajt i tu jest problem. Wpisz tak: [syntax=basic4gl] Portb = 0 waitms 500 Portb = 255 waitms 500 [/syntax]
Jeżeli skaczesz do podprogramu Dalej to mozę potem z niego powróć a nie skacz z niego ponownie do Klaw z którego to Dalej został wyzwolony. Dodatkowo możesz zwiększyć stos bo często przez niego program sypie się na podprogramach. Sugeruję również w danej chwili ustawienie tylko jednej nóżki jako wyjście gdyż jak u ciebie gdy 3 są wyjściami i na nich...
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 mam problem z komendą waitms w bascomie to nie z instrukcja masz problem tylko z programem. Instrukcji waitms używa tysiące ludzi i im działa. No problem ciekawy. Zacząłbym od obserwacji przy jakim tym czasie zaczynają sie problemy bo tgo nie napisałeś. Czy jeżeli zmienisz wait 1 na waitms 999to już jest problem?? Wywal ten podprogram Pobr_znaku....
Po prostu nie możesz korzystać z instrukcji Input tylko z instrukcji np. Inkey i odbierać 128 bajtów o dowolnej zawartości (nawet bajtów zerowych) Po odebraniu 128 bajtów sprawdzić sumę kontrolną, tak jak pisał kolega mirekk36. Jeśli odebrałeś wysłasz ack spowrotem np. z sumą crc ramki Instrukcja Input się nie nadaje do tego celu. Tylko odbieranie za...
Witam ! Obliczenia źle oraz pewnie źle ustawione fusebity (pewnie default - 1Mhz internal rc). Instrukcja Load jako parametr ma po ilu impulsach ma wystąpić przerwanie, więc powinno być 625, ale że pojedyńcza połówka przebiegu sieci trwa nie 20ms a tylko 10ms więc powinno być 312,5 :D. Więc lepiej chyba prescale = 64 i load timer1, 1250. Pozdrawiam...
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...
Nie wnikając w szczegóły(za wiele pisania :D ) , proponuję w podprogramie "Welcome" , zakomentować/usunąć instrukcję Cursor Off , gdyż tylko ta instrukcja chciałaby "skoczyć" do etykiety _lcd_control .Ponieważ z krótkiej analizy kodu wnioskuję , że ten wyświetlacz pracuje tylko w trybie graficznym , więc o włączaniu/wyłączaniu kursora , raczej nie może...
IF pind.1=1 and pinb.1=1 then reset portc.0 zajmuje 26 cykli? Dziadostwo. Gdybyś się BARDZO śpieszył to możesz zrobić tak: ... Jeżeli napiszę się to trochę inaczej: 8: If Pind.1 = 1 Then +00000047: 9B81 SBIS 0x10,1 Skip if bit in I/O register set +00000048: 940C004E JMP 0x0000004E Jump 9: If Pinb.1 = 1 Then +0000004A: 9BB1 SBIS...
Witam. Czy ktoś z was kiedyś próbował wysterować silnik krokowy bipolarny za pomocą uln2003 w bascomie? \ Gdybyś choc trochę zapoznał sie z budową i działaniem silników krokowych to z pewnością nie zadałbyś takiego pytania.... Czy jest to jakkolwiek możliwe? Raczej nie... Do wysterowania jednego bipolarnego steppera potrzebujesz dwa (2) mostki 'H'...
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...
To się nie ma prawa skompilować. Goto skacze do x, którego nie ma. Poza tym jest jeszcze kilka kwiatków w tym programie. Domyślam się, że program ma zmieniać stan końcówki PD.1 w wyniku zwarcia końcówki PC.4 do masy. Zatem [syntax=basic4gl]DDRC.4 = 0: PORTC.4 = 1 DDRD.1 = 1 Do Debounce PINC.4, 0, x, Sub Loop End x: waitms 30 toggle portd.1 Return[/syntax]...
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...
Witam Sprawa prosta. Rozwiązać problem można na kilka sposobów. Ja robiłem tablicę 16-to elementową i w pętli z każdym zboczem sygnału zegarowego wpisywałem wartość do tablicy. Po odczytaniu 16 bitów czytałem te komórki, które mnie interesowały i sumowałem wynik z odpowiednimi wagami bitów. Poglądowy program poniżej. Config Pinx.x : Clk alias Portx.x...
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....
Witam, aby tekst nie znikal od razu wystarczy dac srednik, np. print "Seba"; Aby zmienic jasnosc podam kawalek programu: Print "Seba"; Waitms 500 Printbin &H1B ; &H4C ; 0 '25% Wait 1 Printbin &H1B ; &H4C ; &H40 '50% Wait 1 Printbin &H1B ; &H4C ; &H80 '75% Wait 1 Printbin &H1B ; &H4C ; &HC0 '100% Wait 1 Wszystko jest opisane w nocie katalogowej, instrukcja...
ja jestem wielkim przeciwnikiem Bascoma i zdecydowanie polecam aseblera a nastepnie c , bascom uważam za taki sobie pomysł, większość mikrokontrolerów nie jest przez niego wspieranych więc (tylko 51 i avr-y) co jak przyjdzie robic coś na innych ukłaadach - c jest niezaprzeczalnie standardem a asma i tak trzeba się nauczyć bo bez niego w niektórych przypadkach...
Witam. Procek tak się zachowuje bo nie określiłeś czy przerwanie ma być generowane przez zbocze opadające, rosnące czy przez stan niski na końcówce INT. Domyślnie wyzwalane jest stanem niskim więc wykonuje się raz za razem. Instrukcja Config INTx. Przeznaczenie: Konfiguruje sposób wyzwalania przerwania INTx. Składnia: CONFIG INTx = LOW LEVEL | RISING...
Nie wiem jak w BASCOMie to zrobic (kto w ogole pisze programy na procek z 256kB FLASH w tak dziwacznym jezyku?), ale jesli BASCOM wspiera kompilacje pod konkretny adres i odwolania do funkcji przez wskazniki (to mozna zreszta zrobic za pomoca wstawki w assemblerze), to najprosciej te funkcje umiescic pod jakims znanym z programu glownego adresem, przy...
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ą...
A gdybym chciał się zając mikrokontrolerami, czego bym potrzebował?? Mikrokontroler (jaki?) programator (jaki?) kompilator na kompie (jaki?) hmm.. coś jescze???? _emes Na początek polecam zacząć od mikrokontrolerów rodziny AVR. Nie daj się nabrać na początki w '51 - owszem, może to i "sztandarowy" mikrokontroler, tak jak Pascal w językach programowania,...
Ten programik u mnie kompiluje się bez błędu, używam pełnej wersji BASCOM'a 2.0.7.4. Istnieje możliwość że masz uszkodzone pliki LIB, spróbuj zainstalować Bascom'a na nowo.
Przeoczyłem to. Faktycznie trzeba dac pętlę nieskończoną. #include<avr/io.h> int dane; #define OSC 4 // definicja funkcji opóźniającej void waitms(unsigned char x) { unsigned char a, b; // zmnienne licznikowe for( ; x > 0; --x) // ta pętla zostanie wykonana x-razy for(b = 10; b > 0; --b) // a ta 10 razy for(a...
Kiedyś pewnie zamysł był inny. Kiedy ktoś programował na tylko jeden mikrokontroler to może i ułatwieniem było to, że te ustawienia można ustawić na stałe w IDE. Te ustawienia odpowiadają za zarezerwowanie miejsca w pamięci na stos i przetwarzanie danych. Kiedyś doczytasz. Ważniejsze jest to, że bardziej rozbudowane programy mogą mieć większe zapotrzebowanie...
Skoro dopiero się zaczynasz uczyć, to ciężkiego kalibru używasz (mam na myśli assemblera) a ja uważam, że to najlepszy pomysł - zaczynać od poznania asemblera. Pomimo, że początki są trudne to poznanie podstaw przynajmniej asemblera daje już dużą wiedzę co i jak można robić z prockami. A do większych później projektów czy nawet małych można spokojnie...
Ja używam takich kodów do odblokowania tych pinów, zaraz po instrukcji konfiguracji zegara programowego: 'odblokowanie pinów PC6 i 7 dla procesorów atmega16/32: Tccr2 = 0 Assr = 0 Timsk = 0 Tifr = 0 Oczywiście wszelkie dalsze konfiguracje innych timerów powinny znaleźć się po tym kawałku kodu.
Witam W trakcie prac nad projekcikiem, używam 5 przycisków, które obsługuję procedurą opisaną poniżej. Strzegę się w ten sposób przed kilkukrotnym zliczeniem tego samego przyciśnięcia przez program. If Sw_prawy_help = 1 Then If Pind.5 = 0 Then If V_menu > 5 Then V_menu = 1 Else : V_menu = V_menu + 1 End If Sw_prawy_help = 0 Klik = 1 Wyjscie_z_menu...
http://obrazki.elektroda.pl/5462459700_1... Witam Chciałbym zaprezentować mój projekt zdalnego sterowania pilotem RTV z funkcją uczenia się kodu przycisku. Układ powstał na potrzebę sterowania oświetleniem diodowym pod półką w pokoju. Układ powstał na bazie procesora ATMEGA8 taktowanego zegarem wewnętrznym 8MHz. Program napisany w BASCOM...
Użyj Timer2 dla obsługi RC5 zamiast Timera0 Config Rc5 = Pind.2 , timer = 2 i będzie OKejos ;)
Cytuję: "Ustawia się to w zależności od skomplikowania programu. (...)" O co tutaj chodzi i o jakie wartości tutaj chodzi? Dokładnie chodzi o ilość bajtów jaką początkowo zajmie każdy ze stosów. Stos jest elementem rozrastającym i kurczącym się dynamicznie. Może dojść do sytuacji gdzie jeden zajdzie na drugi - stack overleap - i kłopot gotowy. Dlatego...
Bascom to świetne narzędzie do nauki bo szybko widać efekty i łatwo zobaczyć Hello World ;) niestety moim zdaniem nie nadaje się on do pisania złożonych programów bo jego funkcjonalność jest mocno ograniczona i użycie sprowadza się do wstawienia wstawek asemblerowych lub wycieczki do rejestrów . Pomijając to wszystko można jeszcze trafić na jedną dolegliwość...
instrukcja bascom instrukcja bitwait bascom instrukcja obsługi bascom
subwoofer aktywny aucie buderus awaria kotła esata zewnętrzny
rozliczenie delegacji lodówka grzeje zamiast chłodzić
Wymiana centrali Integra Satel krok po kroku Jak wykonać backup danych centrali Integra Satel