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...
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...
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...
ARCAM_BDP100 User Guide Manual
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.
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...
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.
Dorzuć po Chr(13) - Chr(10) i sprawdź. Alternatywnie sprawdź w instrukcji obsługi modemu, jak ustawić koniec linii polecenia.
Użyj Timer2 dla obsługi RC5 zamiast Timera0 Config Rc5 = Pind.2 , timer = 2 i będzie OKejos ;)
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.
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.
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.
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...
No masz rację. Ale err wykorzystywałem w instrukcjach I2C i było dobrze.
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ł.
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.
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...
może schemat, a nie jakieś instrukcje obsługi....
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...
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
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/...
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...
...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
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...
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...
cóż, nadal proszę o jakieś szersze informacje, instrukcję obsługi itp.
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...
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ą.
(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 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.
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...
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...
instrukcja obsługa bascom bascom obsługa bascom instrukcja
volvo silnika flash player android pomierzyć głośniki
lodówka grzeje zamiast chłodzić rozliczenie delegacji
Napięcia zasilania decka Sony TC-EX660 w wieży MHC-EX660 Złącza elektryczne w układach chłodniczych: Audi A4 i AGD