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....
To prawda, że obsługa przerwania wydłuża czas instrukcji Wait. Tyle, że tutaj instrukcja stosowana w pętli głównej ma spowalniać zwiększanie lub zmniejszanie zmiennej następujące w konsekwencji nacisnięcia przycisku. Kontrola zwiększania lub zmniejszania wartości zmiennej jest jak rozumiem wzrokowa, więc i wydłużenie instrukcji Wait (niewielkie jak...
Już kiedyś pisałem o błędach bascoma w obsłudze przerwań (raz wywołane jest potem cyklicznie generowane pomimo, że czynnik wywołujący przerwanie już zanikł, bo bascom zapomina przy kompilacji kodu o fladze w rejestrze przerwań). Ale tu Bascom nie ma nic do rzeczy, flaga wystąpienia przerwania jest kasowana automatycznie przez procesor gdy włączona...
Ta funkcja jest napisana jako ogólna wykorzystująca tryb ADC Noise Reduction. W dodatku jest napisana dla konkretnego przypadku, kodu który zamiast odczytywać ADC w funkcji przerwania ADC, odczytuje go w ciele funkcji Owszem, nie ukrywam, że akurat w tym przypadku o taki efekt mi chodziło. ADC chodzi cały czas generując przerwania, za to podczas każdego...
Witam ewentualnych czytelników tego tematu. Zamykam temat, jako że problem rozwiązałem. Obsługa timerów została poprawnie zrealizowana po skompilowaniu projektu w Bascomie dla procesora Atmega48, Jedynie przy obsłudze przerwań pojawił się problem. W moim programie była konieczność "ręcznego" kasowania flagi przerwania INT1 za pomocą instrukcji: SET...
Co do składni IF...THEN...ELSE...END IF. Jak wiesz, w BASCOMie każde polecenie możesz oddzielić znakiem nowej linii lub dwukropkiem. IF [warunek] THEN [polecenie] Nie ma tu dwukropka. Jest to jedno polecenie. IF [warunek] THEN [polecenie] END IF Tu są osobne polecenia. BASCOM musi wiedzieć gdzie się kończy IF. Może niezbyt...
Stosuję odczyt DS18B20 w przerwaniu, dlatego, że przerwanie rozkładało mi transmisję 1wire. Przerwanie jest wyzwalane z częstotliwością 100 Hz, przez częstotliwość sieci 220 V i służy do obsługi ściemniacza. Transmisję 1wire umieściłem w tym przerwaniu, żeby uniknąć jej zakłócania właśnie przez to przerwanie. Co przerwanie wykonywana jest kolejna instrukcja...
Poprzednio prezentowany kod nie był sprawdzany w kompilatorze, miał być jednie wskazówką do napisania prawidłowego programu. Ten prezentowany poniżej został przetestowany i sprawdzony na symulatorze programowym Bascom'a. Powinien również działać na procesorze. W prezentowanym kodzie jest wstawiona instrukcja $sim którą należy usunąć przy kompilacji...
mirekk36- w jednej odpowiedzi namawiasz mnie do złego i do dobrego. Nie po to zrobiłem w przerwaniu tylko flagę żeby wkładać tam wait. Apage Satanas- Wait w przerwaniu!? W głownej pętli zrobiłem przerzutnik za pomocą temp0 aby wyeliminować drgania przycisku. Zrobienie przerzutnika programowo- to dla mnie wyczyn. Sprzętowo- to proste. Tylko 13 ms- może...
zapodam całośc na forum jest to obsługa czterech klawiszy do sterownika kolektorem słonecznym, uczę się programować od niedawna chętnie poczytam krytykę albo podpowiedzi innego rozwiązania tylko Panowie litości krytykujcie tylko tak abym nie zniechecił się całkowicie do programowania. Muszę w tym programie poradzić sobie z drganiami styków instrukcja...
Mam oto taki problemik. Programik jest banalnie prosty i działa mniej więcej tak: Gdy zmienna (Wart) nie osiągnie 30 zostaje załączone wyjście Portc.0 . Po osiągnięciu tej wartości wyjście zostaje wyłączone i załącza się kolejne czyli Portc.1 . Podprogram kończy się na wyłączeniu wyjścia Portc.3 . To wszystko jest proste. Problemem dla mnie jest natomiast...
Co jest źle napisane? CLS!!! Nie kasuj wyświetlacza tylko nadpisuj. Użyj Locate y, x lub podobnych instrukcji.
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.
Być może bascom'owe instrukcje obsługi lcd nie patrzą na kierunek w jakim działa port, tzn. w w funkcja "Config Lcdpin" ustawia wybrane porty jako wyjścia a pozostałe instrukcje obsługi lcd nie sprawdzają czy to się nie zmieniło. Spróbuj przed instrukcjami od lcd czyli przed obydwoma "cls" ręcznie przestawić wyprowadzenia uC jako wyjścia. Druga sprawa...
Dorzuć po Chr(13) - Chr(10) i sprawdź. Alternatywnie sprawdź w instrukcji obsługi modemu, jak ustawić koniec linii polecenia.
...Typ zmiennej wiem że musi być integer . Nie musi :!: Nie wiem tylko jak wyświetlić tę liczbę na portach zewnętrznych Poszukaj w "instrukcji obsługi" Bascom , słówek High i Low :idea: Piotrek
Użyj Timer2 dla obsługi RC5 zamiast Timera0 Config Rc5 = Pind.2 , timer = 2 i będzie OKejos ;)
Można zerować, ale nie trzeba, bo każda instrukcja, która ją "obsługuje" i tak ją wyzeruje jeśli nie ma błędu lub ustawi po błędzie.
Nie taka konstrukcja jest jest niepoprawna. Obsługa przerwania musi być zakończona instrukcją Return. Zamiast Goto ustaw flagę i sprawdzaj jej stan w pętli głównej. Jeśli warunek się spełni to wtedy skocz do podprogramu.
Witam Kolego możesz wszystko. Niestety nie polecam Bascoma - instrukcji Bascom'owych do obsługi wyświetlaczy graficznych... możesz mieć później problemy z innymi instrukcjami typu liczniki przerwania itp Chyba ze sam sobie napiszesz sterowanie. Dataport - fajnie jest gdy to jest na jednym porcie łatwa obsługa Configport - bez znaczenia.
Mam pytanie jak odzczytać podawaną na piny procesora at89c2051 liczbę w kodzie BCD?? prosze o przykład polecenia w bascom.:?: x=Makedec(Px) I proszę zaglądac do "instrukcji obsługi" Bascoma ;) P.
może schemat, a nie jakieś instrukcje obsługi....
W podprogramie obsługi przerwania Timer4 brak ci instrukcji end if.
Ciekawe jest to widać w twoim profilu (Pomógł: 79927) :P ale do rzeczy. Według mnie coś takiego można zrealizować w następujący sposób: - konfigurujesz przerwanie zewnętrzne żeby było wyzwalane przerwanie zboczem opadającym, rosnącym etc. - w tym przerwaniu uruchamiasz timer który zlicza sobie impulsy - jeżeli zliczy określoną ilość impulsów to wykonujesz...
cóż, nadal proszę o jakieś szersze informacje, instrukcję obsługi itp.
No masz rację. Ale err wykorzystywałem w instrukcjach I2C i było dobrze.
ERR jest zmienną systemową i zapisywać ją mogą funkcje które mają jej obsługę. ERR sprawdza się zatem zaraz po tym jak wykonała się instrukcja ponieważ następna instrukcja na przykład 1Wreset też zwraca ERR i nadpisze ją 0 znaczy że wszystko przebiegło pomyślnie. ERR się tylko sprawdza.
Gdzieś na elektrodzie ktoś już podawał fajny mały i szybki programik w BASCOM do obsługi enkodera, który przede wszystkim był naprawdę odporny na drgania i błędne zliczanie - wiem, bo sam go kiedyś sprawdzałem. Działał dokładniej niż gotowa bascom'owa instrukcja. Program był na tyle prosty, że i na C bez problemu byś go przepisał.
No cóż, Bascom umożliwia wstawki w asemblerze, co może skrócić obsługę przerwania...
Przerwanie wyzwalasz poziomem czy zboczem? Kolejna sprawa. Gdzieś czytałem, że AVR po wyjściu z przerwania wykonuje JEDNĄ INSTRUKCJĘ i przechodzi znów do obsługi przerwania (jeśli jest nowe). Jeśli chcesz blokować wskoczenie do nowego przerwania , to musisz w OBSŁUDZE POPRZEDNIEGO PRZERWANIA na samym końcu sprawdzać bit zgłoszenia ponownego przerwania....
Napisz tak: Dim Zmienna As Byte Zmienna = 0 Config Intx = Low Level | Rising | Falling [ | Change ] 'Konfiguracja reakcji na sygnał przerwania 'za x podstaw nr przerwania wybierz jeden ze sposobów pobudzenia kocówki uC Enable Interrupts 'Uruchomienie przerwań globalnych Enable Intx 'Uruchomienie przerwania INTx On Intx Obsluga_przerwania 'wskazanie...
Korzystając z języka wysokiego poziomu, czyli C lub Bascom uzyskasz takie afekty, że zawsze coś się będzie rozjeżdzało. W Bascomie te efekty będzą napewno wieksze niż w C. Musisz dążyć do tego, aby procedury obsługi przerwania były jak najprostsze i najszybsze , oraz dla wszystkich przypadków takie same czasowo. Jeżeli widzisz że któraś opcja jest zawsze...
Config Portb.0 = Output Config Portb.1 = Output Config Portb.2 = Output Config Portb.3 = Output Config Portd.7 = Output Config Portd.6 = Output Config Portd.5 = Output Config Portd.4 = Output zastąp: DDRD=255 Zastąp IFy case'ami, dodaj procedurę zerującą Portd7-4 i kod będzie zgrabniejszy. Przypisanie logiczne zastąpi 4 instrukcje sbi/cbi warte 8 taktów...
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/...
A co to za zmienna Nr? Jaką ma wartość początkową i czy ustawioną? Sprawdziłbym jeszcze w symulatorze, czy program "wyrabia" z tymi wszystkimi instrukcjami w obsłudze przerwania i czy nie jest w tym czasie generowane kolejne.
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...
Tak co jeden cykl. Prescale jest 64 wiec nie tu chyba problem. Nic sie nie dzieje na wyswietlaczu a w symulatorze tez nie pokazuje zmian zmiennych. To nie jest jeden cykl, ani też 64 jakby wynikało z podziału prescalera. Wszystko można odczytac w symulatorze, tylko musisz potrafic posługiwac się jego ustawieniami i funkcjami. Poniżej masz przykład...
Witam Wszystkie szczegóły odnośnie transmisji masz na stronie 6 w postaci graficznej. Bardzo ładnie wszystko widać. W pierwszej kolejności ustawiasz pin CS i LDAC w stan wysoki a SCK w stan niski. Żeby rozpocząć transmisję do układu (DAC) ustawiasz stan niski na wyjściu CS następnie na wyjściu danych SI ustawiasz najbardziej znaczący bit dwunastobitowego...
Czy w obsłudze przerwań używasz jakiś instrukcji do obsługi LCD? Jeżeli masz możliwość zamień wyświetlacze i sprawdź czy tak samo się zachowują.
Witam. W pewnym sofcie dla Atmega16 wykorzystałem już: - Timer1 (16 bit) do odliczania 0,0001s odcinków czasu - Timer2 (8 bit) jest wykorzystywany przez odbiornik podczerwieni (instrukcja getrc5) Timer 0 niby jest wolny, ale nie wiem / nie jestem pewien czy nie jest on wykorzystywany przez jakieś używane przeze mnie instrukcje (np. print dla sprzętowego...
Witam Strasznie komplikujecie zagadnienie, zasymulować 4017 jest niezmiernie łatwo, oczywiście najpierw musimy zaimplementować obsługę klawiszy a potem zaglądamy do Helpa Bascoma i czytamy o instrukcji ROTATE, ponieważ umozliwia ona przesywanie zarówno w prawo jak i w lewo to jedyne co zostaje to ustalić pozycję LEDa na starcie. Ponieważ ROTATE działa...
No to trzeba je oprogramować tak, aby nie bruździło... czas obsługi przerwania ok. 1-2 µs (przez wstawkę asemblerową) chyba nie zrobi na transmisji 1Wire większego wrażenia ? Przy 8 MHz mamy do dyspozycji 8 cykli zegarowych w czasie 1 µs, a przy 16MHz - 16 cykli zegarowych. reti zajmuje 4 cykle, cbi / sbi po 2 cykle, ewentualne nop pomiędzy...
Dużo też zależy od miernika, niektóre nie radzą sobie z niską częstotliwością, albo mają problem z przebiegiem prostokątnym. Przeczytaj instrukcję obsługi, powinna być wzmianka na ten temat.
(at)emarcus: O ile się nie mylę, przy prescalerze 64 i cżestotliwości 8MHz timer0 będzie miał skok co 8us, czyli licznik bedzie przepełniał się co 2,048ms, więc do poprawnego odliczenia 1s w obsłudze timera należy załadowywać do niego Timer0 = 6, i dodać licznik, który 500 razy zliczy przepełnienia. A co do tych parametrów, to zawsze wstawiałem domyślne...
Lecz zrobiłem sobie testy: Że na wyświetlaczu wyświetlam wartość B, i jak się okazało, jeśli zamienię Config Timer0 = Timer , Prescale = 1 na Config Timer0 = Timer , Prescale = 8 to wartość B zmienia się szybciej! Dlaczego tak się dzieje? Może dlatego że jest jest prescale =1 to przerwanie jest wykonywane co 32us czyli w czasie tego waitams 20 trafia...
Czy tak może być? Nie. Po komendzie: "1wwrite &H55" Spodziewana jest komenda wpisu adresu adresu device do której odnoszą się dalsze komendy, ponadto: Błędem jest stosowanie tejsamej flagi (niby stopniowej) do wielu operacji bez jej kasowania. Zauważ że flaga=1, lub flaga =2 utrzymuje sie przez dłuższy czas, o wiele dłuzszy niż 'przewinięcie 'pętli...
A co z powtówną instrukcją LOAD Timer0, 50000 w procedurze obsługi przerwania?
Tak po krótce przeanalizowałem wątek TIMER2 tego nowego programu. Po prześledzeniu kilku instrukcji i "śladów skoków" mogę stwierdzić, że nie jest dziwne, że gdy aktywny jest TIMER2 i jego przerwania to wszystko siada. Pojawia się przerwanie TIMER2, program wskakuje do jego obsługi a tam napotyka: GOSUB w inne miejsce, gdzie napotyka GOTO w jeszcze...
Po wykryciu naciśnięcia klawisza musisz ustawić poziom świecenia i przerwać pętlę for next, bo wykonuje ci się jej resztka i zmniejsza jasność świecenia. Co do W1, nie wiem czy to jest komplet źródeł, ale jeśli używasz Bascomowe procedury obsługi W1, to musisz mieć zablokowane przerwania. Albo nie używasz przerwań wcale w programie, a jak nie to musisz...
Nie jestem pewien, ale wybudzanie da się chyba tylko stanem nie zboczem... doczytaj w dokumetacji:> Przed uśpieniem(procek wykonuje kod) , INT0 może być ustawione na falling , ale przed wykonaniem instrukcji SLEEP , należy zmienić sposób wyzwalania na LOW LEVEL i ... włączyć przerwania , jeśli usypiamy proca w przerwaniu. Poza tym , bit ISC01 może...
'do liczby 1536 trzeba by jeszcze coś dolożyć, na wykonanie instrukcji Zasadniczo nie trzeba nic dokładać, bo wartość timera jest inkrementowana sprzętowo od razu (w kolejnym cyklu maszynowym). Czyli już w trakcie obsługi przerwania. Jeżeli obsługa timera zmieści się w 255 cyklach maszynowych, to zmieniany jest tylko młodszy bajt timera - czyli w procedurze...
Witam! Tak bascom posiada gotowe instrukcje do obsługi myszy:D Zaglądnij sobie do helpa (index) i wpisz config ps2emu Tam znajdziesz obszerny przykład i jeszcze dodatkowe istrukcje: SENDSCAN, PS2MOUSEXY Pozdrawiam Wektor
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...
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...
Jeśli chcesz zrobić wait na liczniku to możesz uzyskać dwa efekty. W obu ustawiasz w przerwaniu flagę. Pierwszy do instrukcja czekaj aż flaga będzie ustawiona wykonuj dalszy ciąg programu loop Generalnie w takim rozwiązaniu nie ma sensku dawać timera. Druga opcja do instrukcja if(flaga ustawiona) reszta kodu loop Oczywiście drugie rozwiązanie...
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...
Dzieki za zainteresowanie. Tylko ze pomyliles interfejsy - linia SDA wystepuje w I2C a moj problem dotyczy SPI. Aktualnie zrobilem nowa plytke drukowana do rozpracowania tego tematu. Przede wszystkim pamiec mam podlaczona do pinow SPI sprzetowego. Podlaczylem tez wyswietlacz LCD, zeby liczby ktore mnie interesuja po prostu wyswietlic. Wyprzedzając pytanie...
A jak nie znajdziesz to robi się to tak (na piechotę ale równie skutecznie): Podłącza się jedno wyprowadzenie pod przerwanie a drugie pod zwykły pin. Następnie przerwanie tylko na opadające lub tylko na narastające (zależnie czy avr czy '51). W obsłudze przerwania wystarczy że sprawdzisz stan drugiego wejścia. 1-impuls w jedna, 0- impuls w drugą. To...
Widzę że muszę trochę sprostować. 1. Nawet kosmicznie często wywoływane przerwanie zdąży się wykonać choć by nie wiem jak długo ono trwało, bo przerwania po wejściu w obsługę jakiegoś przerwania są blokowane i odblokowywane są dopiero po zakończeniu się obsługi tego przerwania. Więc twierdzenie że przerwanie nie zdąży się wykonać w ciągu 128us bo samo...
Witaj, No save spokojnie możesz użyć.... pod warunkiem, że nie korzystasz w obsłudze przerwania z instrukcji Bascoma bo jeśli tak to nie odkładając rejestrów na stos, zgubisz ich wartości i w najlepszym przypadku będą się działy różne rzeczy. Ja bym napisał wstawkę w asemblerze odkładając wcześniej na stos używane rejestry w tym SREG. Możesz też użyc...
Na talerzu podawać nie będziem, ale podpowiedzieć można. 1. Z takim podejściem zaraz podpadniesz pod p.16 regulaminu... 2. Schemat rzeczywiście jest źle narysowany (bo zapewne to właśnie o technikę głównie chodziło). Schematy w Eagle twórz tak, by w miejscu połączeń 3 przewodów pojawaiły się kropki (tak, jak wygląda to nieszczęsne połączenie AREF z...
Nie będe firmy reklamował ale jeden z polskich producentów podobnego sprzętu opartego o rozwiązanie tego programatora ma na swojej stronie pełną dokumentację, schemat i instrukcję obsługi tego programatora łącznie z instrukcją konfiguracji tego pod każde środowisko (Atmel Studio, Bascom, etc.) Dostępny jest nawet wsad do mikrokontrolera. Naprawisz sobie...
He..He.. W książce kilkanaście rozdziałów wcześniej napisali. „W mikrokontrolerach AVR nie jest, zatem możliwe swobodne ustawianie priorytetów źródeł przerwań, tak jak to jest np. w 8051. Czasami może zdarzyć się, że podczas obsługi jednego z przerwań potrzebne będzie obsłużenie innego przerwania.”.. bla..bla..”Wykrycie przez odbiornik...
Parę ciekawych rzeczy można znaleźć w tym poście: http://www.elektroda.pl/rtvforum/viewtop... W nowszej wersji bascoma jest instrukcja CONFIG Dcf77.
Bascom takie, a nawet większe opóźnienie wprowadza sam przy każdej instrukcji :wink:. Najnowszy bascom niekoniecznie. Miałem kiedyś problem z przeniesieniem kodu obsługi RFM12B z Bascom na C - w starej wersji Bascoma działało bez opóźnienia, w C musiałem dać opóźnienie kilku us, ale potem w najnowszym Bascom (2.0.7.6) kod przestał działać - też trzeba...
Ponadto etykiety podprogramów obsługi przerwań powinny być poniżej instrukcji "End" A sama instrukcja "End" powinna być tuż za pętlą główną.
Witam! Mam takie pytanie n/t tej książki, ponieważ mam dylemat...znalazłem tą książka jak w tytule, ponieżej zdjęcie http://obrazki.elektroda.net/39_12370566... i mam dylemat ponieważ książka ta kosztuje 45zł i nie wiem czy wydać tyle pieniędzy na nią czy tego samego nauczyłbym się z instrukcji obsługi do programu Bascom Basic AVR Wersja 1.11.7.4,...
Spróbuj If a="wykonaj" then ... albo zamiast cudzysłowu weź to w apostrofy, bo nie pamiętam jak to w tym języku leci. Tak samo oczywiście z instrukcją PRINT (print "OK")
Przesuwanie startu watchdog na początek nie eliminuje problemu. Pewnie tak jak piszesz Bascom procedury inicjacyjne LCD umieszcza zaraz po resecie mikrokontrolera i stad te opoznienie. Moim zdaniem nie powinno tak byc bo ciezko zapanowac nad czyms czego nie widać. Chyba przyjdzie samemu napisac procedury odnosnie obsługi LCD :(
Jak widzę, że ktoś napisał, że szkolny błąd bo procedura obsługi przerwania jest dłuższa od czasu pomiędzy przerwaniami i w tym samym zdaniu napisał, że pierwszą instrukcja obsługi jest zablokowanie przerwania ponownego a ostatnia jest ponowne odblokowanie to mi się pióropusz podnosi.
chwilowo z fotek nici, bo nie mam kabla do cyfraka (piesek ;( ), ale dostalem od Huberta artykul (część pierwszą o Obsłudze RS485 w Bascomie)...
Ok. Piszę i kompiluję w Bascom AVR, przy czym AVR studio umożliwia podłączenie zewnętrznego kompilatora w celu przesłania kodu po ISP do procka. Takie rozwiązanie zostało zaproponowane w instrukcji płtyki testowej od AVT. Powodem jest chyba brak obsługi Attiny2313 przez starsze wersje Bascom AVR. Także listing, który załączyłem jest w Bascom.
Witam. Na stronie: http://www.cyfronika.com.pl/kompilatory.... Wyczytałem że: "W język Bascom AVR wbudowano wiele instrukcji zapewniających m.in. łatwą obsługę (...) a także obsługę stosu TCP/IP na układzie W3100A" Czy komunikacje przez LAN w BASCOMIE (sterowanie portami I/O za pomocą przegladarki, strona z "wlącznikami") latwiej zrobić na W3100A? Czy...
W jakim języku będziesz pisał program :?: Jeżeli w BASCOM, to tam znajdziesz wbudowane instrukcje obsługi wewnętrznej pamięci EEPROM. A co do zewnętrznych, to istnieje seria 24CXX (np.: 24C64). A może lepiej zastosować jako nośnik danych karty SD/MMC :?: Wtedy można szybko przenosić dane z komputera :idea:
musisz dostawiać wiodące zero... Co chyba nie jest trudne, w bascomie służy do tego chyba strasznie zasobożerna instrukcja "fusing" czy jakoś tak... W C nie ma takiego problemu, bo obsługa popychania znaków na wyświetlacz jest niskopoziomowa, i można po prostu wyświetlać... [syntax=C] unsigned char godziny=0x9; //0 + 9 lcd_znak(godziny>>4); lcd_znak(godziny&0xF);...
Nigdy nie programowałem w BASCOM-ie ale wydaje mi się ze masz źle coś w ustawieniach. Sam używam takiego programatora jak ty stk500v2 tylko że w win AVR i AVR studio. Jedyne co moge tobie teraz pomóc to podesłać instrukcje obsługi do tego programatora. [url=http://www.elektroda.pl/rtvforum/vi...
Pomiędzy instrukcje: On Timer2 Multipleks Enable Interrupts wstaw instrukcję Start Timer2. Nie na początku przerwania jak napisał daro:"A na początku obsługi przerwanie tego timera: Start Timer2."
Żeby to policzyć musisz wiedzieć co Bascom wygenerował (chodzi o komendy w ASM) oraz jaki jest czas trwania cyklu maszynowego uP. Każda instrukcja ASM trwa tyle i tyle cykli maszynowych (dane w tabelach). Nie wiem czy Bascom w drodze kompilacji tworzy taki plik (np: .a51). Można jeszcze obsługę przerwania napisać tylko w ASM ..i wtedy wiemy dokładnie...
Dzięki za program wyświetlający. Jeśli dobrze zrozumiałem to zera nieznaczące nie są wygaszane?, jeśli tak to mam jeszcze pytanie jak przerobić program aby te zera były wygaszone?. i czy w instrukcjach tego przerwania obsługującego wyświetlacz mogę dopisać instrukcje obsługi klawiszy tak aby załatwić to za jednym "zamachem"? Raz jeszcze dziękuję za...
W BASCOMie są instrukcje przydatne w transmisji szeregowej sprawdz: SHIFTIN i SHIFTOUT generują przy okazji CLK pozdr KN
To piszczenie ma być tylko wtedy gdy czujnik temperatury nie będzie odpowiadał tzn gdy np zostanie uszkodzony lub odłączony od magistrali 1-wire. To miało być jako taka informacja że coś się dzieje z czujnikiem. To w takim razie jak to zadeklarować jako podprogram lub tą funkcję do obsługi przycisków??
ale to juz inny temat i trzeba brac to po uwage przy projektowaniu konkretnego układu. NXP sie nie przyzwyczaje, Philips to Philips Off topic Nareszcie dzis skonczyłem projekcik - ledwo sie zmiesciłem w procku: Program: 8018 bytes (97.9% Full) A teraz musze napisac instrukcje obsługi. Czy wy tez się tak męczycie na tym etapie?
W helpie bascoma nie znalazłem konkretnej odpowiedzi na moje pytanie. Odnośnie wait pisze tam tylko "Instrukcja wstrzymuje działanie programu na podaną ilość sekund. Odmierzany czas jest wartością przybliżoną, więc nie należy stosować tej instrukcji do dokładnego odmierzania czasu. Używanie przerwań, może znacznie wydłużyć działanie instrukcji ."Osobiście...
Popraw obsługę przerwania. Return nie powinno być w środku instrukcji warunkowej IF zwłaszcza, że po Else nic się nie dzieje.
Nie analizując kodu przeszkadzają zapewne wszystkie instrukcje Wait, Waitms itp. Ogólnie zasadą jest, ze w programie nie powinny występować tego typu opóźnienia - stąd obsługę DS'a zrób na przerwaniu timera.
No niby wiadomo o co chodzi z tymi timerami, tylko jak napisać instrukcje żeby z opóźnieniem odpalić dwa przekaźniki w różnym czasie.Tego nie wiem czytam szukam i nic.
A jaką instrukcją, bądź kawałkiem kodu mógłbym zastąpić tą instrukcję ( encoder ), czy mógł by mi ktoś napisać, opisać taki kawałek programu, wiem, że jakoś się go robiło na instrukcji "If...Then", a nawet spotkałem się na obsłudze encodera, na Timerach... Mógł by mi ktoś pomóc....
Miałem identyczny problem. Rozwiązanie jest proste. Jedną z ostatnich instrukcji procedury obsługi przerwania było kasowanie flagi INT0. Potem powrót RETI i wszystko chodziło ok. Pozdrawiam.
Co do wyświetlenia na lcd, to już możesz zrobić to sam. Poczytaj w helpie o instrukcji Lcd i konfiguracji obsługi wyświetlacza w bascomie. To nic trudnego, tylko trzeba chcieć.
Hm, sprobuj ustawic na 12 bo pamietam ze zmieniajac ten paramer udalo mi sie odpalic wiekszosc bascomowych funkcji na tym procku. Poza tym.. skoro zaczales pisac w C, to po co przesiadac sie na bascom? Satysfakcja z dzialajacego kodu w C jest wieksza niz z bascomowego - przynajmniej dla mnie. edit: Zawsze mozesz ustawic mnoznik zegara na 1/12 i uzyskasz...
Masz 2 opcje albo w pętli głównej albo w obsłudze przerwania. Po za tym jeśli już korzystasz z timera to wykorzystaj go do odliczania czasu zamiast korzystać z waitms.
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...
To jak piszesz ten program to przykład jak należy nie pisać programów. To najgorsza odmiana Bascoma. To jest przykład który zaraz spowoduje tu lawinę postów o tym abyś jak najszybciej przesiadł się na C. Oducz się takiego stylu jak najszybciej. Instrukcję Goto nie powinno się używać wogóle. Są wyjątkowe sytuacje kiedy instrukcja ta ma jakiś sens. Tego...
Wychodzenie z przerwania instrukcją goto to kiepski pomysł. Rozwiąż to inaczej. Przerwanie INT0 najlepiej wyłączyć w procedurze jego obsługi.
Witam. Pytanie odnośnie kompilatora Bascom AVR. Załóżmy, że w programie wykorzystuję dwa przerwania. Pierwsze pochodzi od nóżki Int0, drugie od przepełenienia Timer 1. Czy (i kiedy) w procedurze przerwania powinienem stosować wyłączanie przerwania na czas jego obsługi? Niby Bascom udostępnia gotowe disable interrupts (wyłącza cały system przerwań) oraz...
Na elektrodzie w dziale download jest pomoc do bascom w pdf po polsku. Sa tam gotowe programy przykladowe z ktorych moglbys skorzysac na zasadzie kopiuj wklej. Jest tam wiele komenatrzy. "Klocki" to wspaniala sprawa jesli jestes pewien z kazdy oddzielnie dzila dobrze wrzucasz nastepny do programu i testujesz . Ja pracuje na BASCOM AVR ale staram sie...
RC5 działa i w pętli i w przerwaniu, lecz ja stosuję metodę mieszaną, żeby czasowo nie obciążać pętli głównej instrukcją GETRC5 wkładam do niej instrukcję IF Pin x.y = 0 Then Godub Obsługa_rc5. Podprogram odczytu adresu i komendy wywołany zostanie kiedy będzie potrzeba.
Powyższy kod nie działa nawet jak wyłącze globalnie przerwania, ale wystarczy procedure obsługi przerwania od timer 1 przenieść za program główny i zaczyna działać. Czy ktoś potrafi to wytłumaczyć bo na mój rozum to on podczas kompilacji coś żle interpretuje. Wygląda na to ze program się wykonuje od pierwszej napotkanej instrukcji, pytanie czy świadomie...
Wstaw przed Do instrukcję Start Timer1. Z helpa nie wynika, że Config włącza timer automatycznie, a jeśli ten się nie uruchomi to nie będzie przerwania i nie zadziałają instrukcje Start/Stop w podprogramie obsługi przerwania. P. S. Nie miga ci wyświetlacz? Zastosuj Locate albo Upperline zamiast CLS.
Trudno w to uwierzyć. Proste wyliczenia - matryca 640*480, odświeżanie 25Hz - dotclock=7680000Hz. Dla ATMegi8515 daje to zaledwie 2 instrukcje na pixel (przy maksymalnym taktowaniu 16MHz). Biorąc pod uwagę, że dostęp do zewnętrznego RAM trwa co najmniej o 1 cykl dłużej, to jest to 1 instrukcja/pixel. W dodatku 8515 nie ma interfejsu do XRAM, więc jakiś...
bascom instrukcja obsługa bascom obsługa bascom instrukcja
pełna opona wyciszyć hałas silnika gąsienica czołg
Telewizor nie zapamiętuje kanałów - przyczyny i rozwiązania Odzyskiwanie kodów sterownika Opel Vectra C