Wklep na początku przerwania : Enable Interrupts Wywnioskowałem to z pomocy bascoma (polecenie on Interrupt)
Uzywasz przerwania, a gdzie je włączasz? Dodaj Enable Interrupt.
No więc po walce z datasheetem zrobiłem tak : [ code ] Tccr0a = &B00000000 Tccr0b = &B00000101 ' prescaler 1024 Timsk0 = &B00000001 Enable Interrupts On Ovf0 Przerwanie [ /code ] No i wygląda na to, że jest OK. Skompilowało się, i miga mi led, czyli jakby żyje... (bo ten led z tego timera...)
bascom -> help ->index -> ON INTERRUPT masz tam gotowca ...
Najpierw czytać, później pisać. Jest takie coś jak help w Bascomie, a w tym helpie jest takie coś jak On Interrupt. Polecam.
Dla pełności tematu. Jak skorzystać z PCINT? Szukałem w manualu i jakieś przykłady w sieci ale nie znalazłem nic czytelnego. Oto przykład dla Attiny13 (jest on w manualu): [code][syntax=basic4gl] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 32 $swstack = 24 $framesize = 8 'config pinb.0 = input Config Portb.2 = Output Pcmsk = &B00000001...
Wpisywanie $CRYSTAL bez rzeczywistej zmiany taktowania procesora będzie powodować, że wszelkie opóźnienia i obliczenia kompilatora dotyczące liczników nie będą zgodne ze stanem faktycznym. GETRC5() korzysta aktywnie z licznika TIMER0. Tak manewruje wartością wpisaną do rejestru licznika oraz preskalerem by otrzymać jednakowe odcinki czasu zliczane później...
Witam Już dłuższy czas męczę się z banalnym .... Powerdown nie powinien być w Interrupt service. Zwróć uwagę na bit7 (I) w SREG - jest on zerowany i twój INT0 jak i inne na ten czas są blokowane. e marcus
r"]Problem taki ze nic się nie dzieje nawet jeden pasek nie zapalił sie. Widzicie gdzieś błąd Enable Interrupt Enable Timer0
To w tym kodzie chyba jest zrealizowane co powiedziałeś. Czy mam zastosować on interrupt (od komparatora)
Czy może mieć na to wpływ to z jakich pinów korzystam? Na pewno ma. Moim zdaniem nie da się poprawnie obsłużyć klawiatury bez wykorzystania przerwań. Nie mam pojęcia jak jest to obsługiwane w BASCOMIE ale wiem jak działa klawiatura. W takt zmian sygnału CLK są przesyłane dane DATA. Całość sprowadza się do sprawdzania stanu na pinie do którego podłączony...
No nie bardzo. Kolejność może być dowolna. Byle zezwolić globalnie (Enable Interrupt) i lokalnie (Enable Int0, Enable Int1, ...).
Jak to nic nie podłączone ? A jak ma uc odbierać kody z pilota jeśli nie na ICP ? This program works by connecting the Data output from the IS1U621 to the ICP ' Pin of the AVR and then uses the Capture1 interrupt to measure the time ' between each bit to know if it is a 1 or a 0 and then uses Compare1a interrupt ' to detect that there has not been a...
Niestety nie jestem bascomowy. Piszę tu o algorytmie i rozwiązaniach ale konkretnej implementacji w bascom ci nie podam. Pogooglaj temat pin change interrupt może znajdziesz jakiś kod w bascom. Znalazłem coś takiego wprawdzie na PCINT z detekcją na jednym pinie ale można to dorobić na pozostałe wg specyfikacji procesora ale przykład jest w C [url=http://www.insidegadgets.com/2011/0...
włączasz przerwanie (kody dla FastAVR) Declare Interrupt Urxc() Enable Interrupts Enable Urxc i czekasz na odebranie danych: Interrupt Urxc() bufor=UDR End Interrupt
.... W pętli głównej sprawdzam na okrągło bit 0 rejestru 0 układu ( sprawdzam flagę alarmu timera). .... "Additionally, a timer alarm can be programmed by setting the timer alarm enable (bit6 of the alarm control register). When the value of the timer equals a pre-programmed value in the alarm timer register (location0F), the alarm flag is set ( bit1...
Witam, ....... a nie wiem jak powinienem napisać poszczególne "wątki" programu, żeby całość się wykonywała jednocześnie. Krótko mówiąc, czy pętla "blokuje" dalsze instrukcje? Bardzo proszę o nakierowanie mnie na właściwe rozwiązanie tego problemu, czytam oczywiście pomoc do BASCOM'a i różne wątki na Elektrodzie. Nie ma takkej mozlowosci aby dwie niezalezne...
Mam problem podczas kompilacji prostego kodu. Wyświetla się komunikat: Error: 117 Line: 24 Unknown interrupt [OVF0] Nie potrafię tego zidentyfikować. Czy ktoś pomoże w naprawieniu tego błędu?
powinno byc cos takiego (to tylko fragment kodu) dim znaki(19) as byte dim licznik as byte licznik=0 enable interrupts enable urxc on urxc odbierz 'jak odbierze znak to przerwanie do:loop:end 'glowna petla tu robisz co chcesz odbierz: znaki(licznik)=inkey()'o... znak trafi do tej zmiennej incr licznik if licznik...
na symulacji działa, ja jeszcze wymyśliłem coś takiego przycisk musi być podłączony pod INT. Nie jest dobrze; Aby użyc interrupt należy go najpierw skonfigurować jak ma działać i napisac procedurę co ma być zrobione w przypadku interruptu. np: Config Int0 = Falling ' lub Rising On Int0 Procedura ' "Procedura" jest nazwą etykiety w której umieścisz...
Z tego co wiem "PIN Change Interrupt" ma np. Atmega168 i Atmega 328. Atmega 32 - jakoś nie widzę takiej możliwości. Proszę o poprawienie mnie, jeśli się mylę. Oczywiście zawsze można skorzystać z tych specjalnych pinów - INT0, 1 czy 2 lub zasymulować taką kontrolę stanu pinu w zwykłym przerwaniu - np. timera.
PCINT są wyzwalane tylko zmianą poziomu (Pin Change Interrupt) i nie da się go skonfigurować jako "falling"
Te procesory się aż tak nie różnią. Dodatkowe funkcjonalności pinów nie przeszkadzają w niczym dopóki ich nie uruchomisz. (PCINT - Pin Change Interrupt trzeba wiedzieć jak włączyć). Jest duża różnica jeśli chodzi o Timery właśnie. Mega8 ma na przykład tylko jeden rejestr Compare dla Timer2 dlatego inaczej się nazywają. Opisałem to u siebie na stronie...
To chyba mi nie pomoże. Jesem początkujący w bascomie 01ale z tego co wiem procesor wyjść INT ma 2 lub 3. A ja mam w planach zrobienie 4 odbiorników więc to chyba wyklucza taki sposób. Chyba że każde wyjście da się ustawić jako int? Przy jednym tylko wejściu wystarczyłoby podłączenie wejścia pod interrupt i w jego subrutynie zablokowanie tego interruptu...
POWERSAVE (ATMEGA88) This mode is identical to Power-down, with one exception: If Timer/Counter2 is enabled, it will keep running during sleep. The device can wake up from either Timer Overflow or Output Compare event from Timer/Counter2 if the corresponding Timer/Counter2 interrupt enable bits are set in TIMSK2, and the Global Interrupt Enable bit...
Witam ogarnąłem już dużo na temat programowania w bascom, tylko mam kolejny problem, mianowicie chciałbym zaprogramować obsługę serwa pilotem nadającym w RC5 lecz gdy połączę obsługę rc5 i serwa mam takie błędy i nic nie działa: ........ Pojedynczo programy działają ok. ................. Rc5+ servo (nie działa) Pozdrawiam. Zauważ że zarówno 'Config...
Szukając w dokumentacji frazy PCINT, znalazłem przykład czytnika tagów HITAG. Jest tam interesujący... komentarz :-) 'you need to use a pin that can detect a pin level change 'most INT pins have this option 'OR , you can use the PCINT interrupt that is available on some chips 'In case you want PCINT option ' Pcmsk2 = &B0000_0100 'set the mask to ONLY...
[quote="lukaskay"] a gdybym czas oczekiwania zwiększył do 15 s wtedy dokładność wzrosła by mi do 4 obr/min mogę użyć komendy: Wait 15 ?? ale wtedy chyba dojdzie do przepełnienia licznika?? quote] Przy twoich parametrach silnika el., oczywiscie ze dojdzie do przepelnienia licznika0. Ponadto uwazam ze stosowanie dyrektywy "Wait" w pomiarach nie jest najlepszym...
W przerwaniu INTx ustawić watchdog w tryb przerwania na czas około 1 sekundy i wrócić do power down. Po przerwaniu od watchdoga sprawdzić stan wejścia i podjąć odpowiednie kroki. PS. W attiny każde wyprowadzenie może wybudzić procesor. Lepiej używac pin change interrupt moim zdaniem.
Tu jest przykład [url=http://avrhelp.mcselec.com/index.ht...
To wiemy Ty i ja, oraz inni, ale czy wie o tym tomaszdko ? Ta informacja jest umieszczona w pomocy do programu i łatwo ją znaleźć. Niestety jeżeli nie zna choćby podstaw Asemblera nie będzie wiedział do jakich rejestrów została zapisana zmienna Single. Przykład z modyfikacją zmiennej typu Single w przerwaniu to akurat bardzo zły przykład. I to nie...
Chciałbym jednak użyć CTC, ale kompletnie nie wiem jak się za to zabrać w Bascomie. Nie znalazłem na forum żadnych przykładów. Jak by ktoś poczęstował przykładem kodu dla z CTC w Bascom to byłbym niezmiernie wdzięczny :) Jakieś kilka dni temu, nie dłużej jednak niż tydzień, ‘gaskoin’ podal dokładną procedurę konfiguracji CTC. Jeżeli przeoczyłeś...
Po małych zmianach działam na czymś takim. Pomimo taktowania z wewnętrznego kwarcu nie widać efektu. Jakiegokolwiek. [syntax=c]/* * RealTimeClock.c * * Created: 2013-11-17 01:46:48 * Author: Piotr Pabian */ #include <avr/io.h> #include <avr/interrupt.h> void init_RTC(void) { //ASSR = 1<<AS2; //Enable asynchronous mode TCCR2 = (1<<CS22)|(1<<CS21)|(1<&l...
[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...
atom1477 napisał: No właśnie. A BASCOMowi są one obce I właśnie z tego powodu sam optymalizuje sobie kod programu. Wiem, gdzie, co i jak. jacynka84 , zamiast : Wciąż nie wiem jak działa bascom...;] Jeśli nadal Będziesz bazował na Bitwait itp. to w dalszym ciągu się nie dowiesz jak działa. I ja się bałem zapisywać bezpośrednio do rejestrów (adresów)...
Do rejestru trafia wartość 8 zatem bit AS2 jest ustawiony. CONFIG TIMER2 jest zbędne w tym programie gdyż CONFIG CLOCK = SOFT sam ustawia ten licznik i jego przerwania. 7: Config Clock = Soft +00000047: ldi r24, 0x08 ; set AS2 in ASSR +00000048: out ASSR, r24 +00000049: ldi r24, 0x05 ; prescale 128 +0000004A: out TCCR2, r24 +0000004B:...
No to coś napisałem na AVRStudio 4.05.0.181 (na kolanie) :) . Co prawda na ATmega8 , ale przeportowanie to pestka(niektóre wektory przerwań do skasowania/zmiany nazwy i "2313def.inc" zamiast "m8def.inc" , prędkość kwarcu Xtal też do poprawki...), raczej tu chyba nie ma rozkazów niezaimplementowanych w AT90S2313 . ;included in next file - line ".device...
...A może ktoś z forum już bawił się na 168 tymi przerwaniami w praktyce i podzieli się wiadomościami czy działają?. Wprawdzie help milczy w temacie PCIEx , to wystarczy popatrzeć na sekcję w pliku *.dat interesującego na procka i już wiadomo co i jak ;) m88def.dat [INTLIST] count=25 INTname1=INT0,$002,EIMSK.INT0,EIFR.INTF0 INTname2=INT1,$004,EIMSK.INT1,EIFR.INTF1...
ldi R16,0 Out &H38 , R16 spróbuj to zamienić na : ldi R16,1 Out &H58 , R16 Co do tłumaczeń to jednak w oryginale brzmi to tak: -When an edge or logic change on the INT7:0 pin triggers an interrupt request, INTF7:0 becomes set (one). Co dla mnie w wolnym tłumaczeniu brzmi -Kiedy zbocze lub poziom logiczny na pinie przeniwania 7-0 się zmieni wywoła to...
Ok, dzieki. A co jest nie tak z warunkami logicznymi w podprogramie Interrupt_dcf?
Akurat klawiatura matrycowa to moim zdaniem nieporozumienie w przypadku tak krótkiego selektora. Rozwiązanie jakie obmyślił autor wątku jest proste i całkiem eleganckie - nie ma przeciwwskazań by go nie stosować. Wszystko co potrzebne autorowi do realizacji tej ideii zostało już w tym wątku wyjaśnione. Pozdrawiam, GSM P.S. Co do wyjścia /INT ekspanderów,...
Z tym, że tablice musiałbym wcześniej wpisać w program, a mi chodzi o to, by "uczyć" tego robota danego zadania. Jeśli zmieniłbym odległośc punktu A od B i znowu postawił przeszkode, w którą by robot uderzył, to wtedy ponownie musiałby zapamiętać nową trase. Przy czym jeśli działałbym w obrębie pamięci RAM, kasowałbym ją po prostu resetem zasilania....
Zapewne: 1. nie włączyłeś przerwań globalnych, 2. lub nie włączyłeś przerwań z INT0, 3. lub nie ustawiłeś reakcji INT0 na low level. Zobacz w dokumentacji mikrokontrolera tabelkę Table 32. Interrupt 0 Sense Control oraz rejestr GICR. Jak to zrobić w BASCOM nie wiem :)
W Helpie bascoma jest napisane: "LOW LEVEL to generate an interrupt while the pin is held low. Holding the pin low will generate an interrupt over and over again." Przetłumaczyć, czy znasz angielski?
w bascomie tak: SET TCON.0Falling edge generates interrupt for INT0. RESET TCON.0Low signal generates interrupt for INT0. SET TCON.2Falling edge generates interrupt for INT1. RESET TCON.2Low signal generates interrupt for INT1. w helpie w"additional hardware" mozna to znalezc. "Falling edge" oznacza zbocze opadajace wiec dodaj po inicjalizacji przerwania...
Masz tutaj program odbierajacy dane z rc5 w przerwaniu int0: 'Program umożliwiający odbior danych w standardzie rc5 z użyciem przerwania int0 'dzieki czemu odbior danych nie zakłóca działania programu głównego $regfile = "m32def.dat" 'atmega32 $crystal = 8000000 'kwarc 8MHz Config Lcdbus = 4 Config Lcd = 16 * 2 'wyswietlacz 2x16 znakow Config...
Będę musiał sprubować z innymi pilotami, a opóźnienie mam nawet w tym programie z helpa : $crystal = 4000000 Config Portb = Output Config Portb = Intput Config Rc5 = Pind.2 Dim Address As Byte , Command As Byte Enable Interrupts Do Getrc5(address , Command) If Address = 0 Then Command = Command And &B01111111 Print Address ; " " ; Command End If Loop...
Witam... Ja bym nie bawil sie w komparator i ... tylko wzioł cfrowy termometr 1-wire np DS1822, DS1821(swoją drogą da sie go zaprogramować jako termostat) no ale można zrobić to w rózny sposób, wracam do tematu postu... Przerwanie od komparatora w BASCOM Config Aci = On , Compare = Off , Trigger = Toggle On Aci Przerw Enable Interrupts Enable Aci coś...
zerknij na ten projekt http://www.mcselec.com/index.php?option=... cała idea pomiaru jest zawarta w procedurze obsługi przerwania Interrupt Service Routine , jest to w Bascomie ale myślę że bez problemu przeniesiesz to na asembler
Łopatologicznie: Najpierw ładowana jest stara zawartość rejestru odpowiedzialnego za włączanie lub blokowanie przerwań (korzysta z tego np. polecenie ENABLE). Potem włączane jest przyjmowanie przerwań z linii INT4, tak jakbyś wykonał ENABLE INT4. A na końcu nowa zawartość rejestru zostaje zapisana w pamięci procesora. I od tej pory przerwania z INT4...
Ten sam kod, który zaprezentowałem w pierwszym poście , natomiast przerwanie wywołane już na nodze portb.0 i działa zmienna nie jest nadpisywana. Cała reszta kodu bez zmian poza zmianą przerwania. Przerwania skonfigurowane prawidłowo. Moze przerwania masz skonfigurowane prawidlowo... ale..... Czy mozesz wyjasnic w jakim celu, w obsludze przerwania...
Nie napisałeś , że ten pilot nie pracuje w kodzie RC5 , ale też nie napisałeś , że w tym kodzie pracuje :wink: Inna wersja Twojego programu: $regfile = "m32def.dat" $crystal = 8000000 '11059200 Dim Adress As Byte , Command As Byte , X As Byte , Tmpcode As Word Dim Odebrano As Bit , Flaga As Byte Config Pind.2 = Input : Portd.2 = 1 Config...
$crystal = 8000000 Config Lcd = 16 * 1a Config Int0 = Falling Config Timer0 = Timer , Prescale = 256 Config Watchdog = 2048 Config Pind.0 = Input Config Pind.1 = Input Config Pind.3 = Output Config Pind.4 = Output Config Pind.5 = Output Dim Regulation_counter As Byte Dim On_off_flag As Bit Dim Regulation_type_flag As Byte Dim Int_counter As Byte Dim...
hmmm Przede wszystkim: Enable Interrupts On Timer0 Przerwanie Stop Watchdog Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 256 'PWM=250Hz Load Timer0 = 195 To włączenie przerwania jest wstrętne w tym miejscu:P Co do wniosków... może spróbuj zwiększyć stos o...
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...
ok, tylko najpierw uporam się z przyciskami i nastawami :P Dodano po 28 $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output 'podłaczony wyświetlacz 'Config Pinb.0 = Output ' anoda 1 źle! nazwa pin służy do odczytu wartości 'Config Pinb.1 = Output 'anoda 2 źle! aby ustawić należy się posłużyć nazwą Portb.x 'Config Pinb.2 = Input...
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...
Otwieramy helpa i lektura obowiązkowa: CONFIG INT ENABLE DISABLE ON INTERRUPT RETURN SET RESET IF...THEN...ELSE No i nota katalogowa ATMega16. A w Wikipedii temat: transoptory. Do dzieła!
witam , potrzebuję pomnożyć 7razy impulsy wejściowe , częstotliwość wej nie jest duża max 200hz , znalazłem podobny program na pic16 mnożacy 39razy i kawałek kodu na atmege8 również mnożący 39razy , jednak zupełnie nie mam pojęcia jak cos takiego napisac w bascomie kod dla pic: Device 16F628A Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_ON...
Może jakaś myśl Ci podpowie (mi pomogła myśl o bardzo precyzyjnym zbudowaniu funkcji interrupt) http://www.elektroda.pl/rtvforum/topic20... Sorry ale basic jest mi bardzo daleki.
sorki mój błąd Błąd wywala program bascom-8051. A kawałek kodu wygląda tak: Priority Set , Serial Enable Serial Enable Interrupts On Serial Przerwanie_rs232 Jest on samym początku całego programu.a Błąd wygląda jak: "Error 13: Unknown interrupt in file..."
Wydaje mi się, że najpierw powinno być „uruchomione” odliczanie tych 0,1 sek, wyzwalane pierwszym pikiem z „paczki”. Potem trzeba odczekać te 0,1 sekundy na zanik „szumów” i zacząć zliczanie w czasie 0,9 sek. Ilość zliczonych pików podzielona przez czas da mi częstotliwość. Wynik ma się utrzymywać na wyświetlaczu...
Kompilator (BASCOM 8051 ver. 2.0.11 - DEMO) wykrzacza się na poleceniu GETRC5 (gdziekolwiek by nie było w programie zawsze jest błąd na końcu). Co ciekawsze kiedyś się to kompilowało. Sprawdzałem na różnych systemach i ciągle jest to samo. Dotyczy to również przykładów zawartych w kompilatorze. Może potrzebana jest jakaś dodatkowa biblioteka albo coś...
http://obrazki.elektroda.pl/8753306600_1... Tak wyglądają "bity" na kablu. Stan wysoki jest stanem spoczynkowym. Wyobraz sobie, ze bierzesz timer, podlaczasz taki sygnał do procesora, i co zbocze przechwytujesz wartosc z timera a następnie wykonujesz odpowiedni ISR. Każdy odstęp ma przecież swój unikalny czas. W ISRrze wiesz dokładnie, jakie...
Użyj Timer'a 2 i wszystko będzie cacy. Pzdr. A piny to się konfiguruje tak: Config Pinb.1 = 1 a nie Portb.1. Przydaje się też wrzucenie linijki z def'em procka: $regfile = "M8DEF.dat", zresztą: $crystal = 8000000 $regfile = "M8DEF.dat" Config Timer2 = Timer , Prescale = 256 On Timer2 Przerwanie Dim A As Byte , B As Byte Config Lcd = 16 * 2 Cursor Off...
Na przyklad generowac Interrupt Config ACI = On|Off, Compare = On|Off, Trigger = Rising|Falling|Toggle Enable Interrupts Enable IntACI On Int ACI akcja Do Loop akcja: ................ ' tu wpisz twoj program, obsluga timera lub/oraz kontrola ............... ' odpowiedniego wyjscia Return
No to jest to czego szukałem. Tylko teraz pytanie: Dlaczego zawartość rejestru R0 to zawiera,a nie można odczytać z MCUCSR jak jest opisane w DSie?? edit Aaa już wiem gdzie robiłem błąd. Można odczytać WDRF moim sposobem tylko przed Config Watchdog, bo ta instrukcja czyści rejestr MCU(C)SR. Wszystko pięknie jest wyjaśnione w Helpie od wersji 2.0.1.0...
mam przerwanie w którym wykonuję operacje na zmiennych "globalnych" niestety po powrocie z przerwania moja zmienna odtwarza sobie wartość z przed przerwania. Czy jest jakaś możliwośc przekazania wartości z przerwania do programu głownego, oprócz on interrupt nosave? Zdanie rozpoczynamy wielką literą - proszę poprawić. Proszę stosować tagi w tytule -...
Troszke nie poważne pytanie z twojej strony, jeżeli zajżysz do kodu źródłowego, tam jest wyraźnie zaznaczone // ==== single usart configuration ==== // 19200 baud with 8000 kHz osc./error=0,2% // data 8/stop 1/parity NONE // receiver ON/transmitter ON/recv interrupt enabled
kolego dzięki do assembler mam książkę więc o nim zapomnijmy to ma być prosty kod w BASCOMie może sterowanie L297 będzie latwiej P3.2 INT0 (external interrupt 0) P3.3 INT1 (external interrupt 1) P3.4 T0 (timer 0 external input) P3.5 T1 (timer 1 external input) jak widzisz ma cztery timery tylko co mi daje większa ilość ja potrzebuję zaliczać impulsy...
Mam Attiny2313 pracujący na wewnętrznym oscylatorze 8MHz, który może być dzielony przez 8, Więc raz jest 1Mhz, a raz mogę ustawić 8Mhz. To jest prawda, chyba nie robisz tego w programie tylko(!). O ile wiadomo to funkcja 'GETRC5' używa Timer0 oraz Timer0 Interrupt, zatem używanie timera0 w programie do innych celów staje się dyskusyjne. e marcus
Podaje program z komentarzem. ............ Ps. Nie ładowałem do licznika wartości bo potrzebuje dwóch pełnych przeładowań. W programie jest zupenie nie ważne ile tych przepełnień wystpuje; istotne aby rachunek odmierzanych odcinków czasu był zgodny z zamierzonym. Skoro jesteś zmuszony zliczać przepełnienia (co jest rzeczą absolutnie normalną), więc...
Zrób sobie osługe RS232 na przerwaniach. Jest tego w internecie od groma. np: [url=http://www.avrfreaks.net/forum/tut-... Nie znam bascomu ale : http://avrhelp.mcselec.com/index.html?di... A tu po polsku...
Witam Mam problem. Połączenia mam bezpośrednio od procesora do potencjometru: Pga4311 89s8252 SDI (pin 13)----------------P1.5 (MOSI) (pin 6) CS (pin 14)-----------------P1.4 (SS) (pin 5) SCLK (pin15)--------------P1.7 (SCK) (pin 8) Program w Bascomie, fragment: $regfile = "89s8252.dat" $crystal = 12000000 Config Spi = Hard , Interrupt = On...
Nie wydaje mi się . reti - return interrupt z assamblera , Zasadniczo chodzi o to aby załączyć globalne zezwolenie przerwań przy powrocie , a dokładnie to robi reti , tak samo zresztą jak return w bascomie . ale sprawdziłem też return i jest to samo . Bascom jest dosyć elastyczny w tej materii jeśli chodzi o mieszanie różnych składni ,
Ja uczyłem się na poniższym kodzie: [syntax=basic4gl]'1 second code $regfile = "m8def.dat" ' or "m88def.dat" or "m168def.dat" $crystal = 4000000 $baud = 9600 $hwstack = 32 $swstack = 16 $framesize = 40 Dim Seconds_count As Long ' ========================================... ' Timer1 initialization ' ' Mode: Clear Timer1 on Compare Match (CTC...
Innym sposobem emulowania klawiatury w bascom jest biblioteka "at_emulator.lbx" (zdaje się płatna). MCU z tą biblioteką emuluje na dowolnych pinach standard PS2. Wystarczy wtedy konwerter PS2 -> USB. (kosztuje grosze). '---------------------------------------... ' PS2_KBDEMUL.BAS ' (c) 2002-2003 MCS Electronics...
W pliku m8515.dat wszystko się zgadza URXC=$009;UART Receive Complete Interrupt Vector Address A gdy próbuje zrobic wstawke asm z własnym "przekierowaniem" z tego wektora to cały bascom się wiesza podczas kompilacji. Czy jest możliwe wewnętrzne mechaniczne uszkodzenie procesora?
Jeżeli byłby ktoś w stanie wyjaśnić mi dlaczego realizując wyświetlanie multipleksowane w poniższy sposób uzyskuję wyświetlanie czterech zer ? Wygląda mi to tak jakby zmienne Z1...Z4 nie były dostępne w momencie działania podprogramu przerwania. Jeżeli podprogram 'Wyswietlanie' umieszczę w pętli głównej to wszystko jest ok i wyświetla się ciąg '4795'....
Witam Problem w tym, że po włączeniu zasilania w urządzeniu, na INT0 od razu pojawia się stan niski (z bramki NAND - bo żaden przycisk nie został wciśnięty) no i generowane jest przerwanie, które z kolei ustaje gdy wcisnę dowolny z przycisków (wtedy na INT0 pojawi się stan wysoki) wówczas wykonuje się główny blok programu. crooveck Zastosowanie bramki...
Tez nad tym sie zastanwialem czy tak wlasnie nie jest, jesli dobrze rozumiem wtedy przepelnial by sie stos i wszystko szlo by w kosmos. Jednak nadal nie do konca to rozumiem bo w tkaim razie wstawialac do swojego kawalka Set Eifr.intf0 Powinno wszysto dziaalc bo kasuje flage przerwania, a niestety nie dzialalo :( Pytanie czy wstawienie Disable interrupt...
Witam. this sample receives RC5 on the background. it will not block your code like getrc5 ' it requires a 16 bit timer with input capture. you can not use the timer yourself. ' some processors have multiple 16 bit timers. Config Rc5 = Pinb.0 , Timer = 1 , Mode = Background ' ^--- background interrupt mode ' ^--- this must be a 16 bit timer ' ^----...
Przesyłam wartości zmiennych, wyświetlacz sie kasuje, aby podczas testów pokazywał czy uC odbiera dane poprawnie. Zmiana na waitkey nic nie dała. Natomiast enable interrupt spowodowało dziwną reakcje: po chwili zamiast wartości 2 ostatnich zmiennych pojawiają sie spacje, a po drugiej chwili dzieje sie to samo z pierwszymi 2 wartościami. Kod wyglada...
. Chodzi o to by właśnie nie było tej zwłoki 5 sekundowej podczas której program stoi i nie reaguje na przycisk. Nie wiem czy to się da zrobić za pomocą "wait". Ja zaproponowałem swoje rozwiązanie ale nie wiem czy da radę tak to przerobić. Nie potrafie na tą chwilę napisać programu bez użycia "wait". Instrukcja 'Wait' powoduje że processor zajmuje...
To ześmy sie zgrali... Fusebit Extended P ustawiony na "1:Atmega128 Mode" Oki oki sorki, ale ja to tak bez nerwów :D . Czasami udaje mi się samemu rozwiązać problem zanim na forum ktoś odpowie, albo tematy pozostają bez echa, ajk np programowy SPI i AD7843. Naprawdę port zmienia stan, jak potraktuje się go normalnie jako wyjście, ale jako przerwanie...
Wielkie dzięki! Oczywiście masz rację! Oczywiście...Nie ma racji!... (16000000/256 = 62500) Jest to częstotliwość impulsów z prescalera kierowanych do timera0. Timer0 - z konfiguracji pracuje w trybie 'Normal' bez preload, więc interrupt OVF0 będzie generowany po otrzymaniu 256 impulsów (pełny zakres licznika); a zatem częstotliwość wystąpienia interruptów...
Powiedz mi dlaczego - skoro korzystasz z Bytematch to dajesz parametr ALL ??? a przecież piszesz że odbierasz swoją "ramkę danych" zakończoną znakiem chr(13)... I znowu mógłbym się rozpisać za długo jak warto podchodzić do transmisji danych przez RS232, że warto wykorzystać własnie znaki końca linii do wyłapywania zdarzeń, że warto wtedy ustawiać flagę...
Wklejam ten kod [url=http://bascom-forum.de/showthread.p... właściwego postu . [syntax=basic4gl]'----------------------... ' Dateiname : TEA5767-TP.bas ' Revision : 1.0 19.08.2012 ' Controller : AVR ATmega8 ' Autor : Thomas Palluthe (www.tp-homesoft.de)...
Program zajmuje 50%. Może i jest źle napisany ale działa.. Ja bym to stwirdzenie troche skorygował; Program działa tak jak jest napisany!... bo - "Jest jeszcze jeden problem." Co jakiś czas temperatura podskakuje o 10 stopni a czasami nawet do 200 podskoczyło co spowodowało zbędne załączenie przekaźnika. Z czym jest problem? Popatrz na pracę timera0,...
To łatwo obliczyć, jeżeli dasz timer 0 bez preskalera, to przerwanie masz co 256 taktów zegara. 10Mhz/256=39kHz To dzielimy/(ilość bitów)np 8 =>39kHz/256=150Hz Trochę mało.... Oczywiście w przerwaniu możesz wrzucić nową wartośc do timera0, aby przyśpieszyć, ale ... cały czas musisz zdążyć wszystko podczas przerwania. Bez symulatora się nie obejdzie....
Mam jeszcze jedno pytanie Dlaczego nie można użyć innego pinu jako końcówki sterującej SS dla układu ENC28J60 ? Od kilku dni grzebię sobie z przykładem z [url=and-tech.pl/files/Kurs%20ENC28J60.z... jak i z tym co udostępnił Kolega Mundi1970 i całość działa tylko przy ustawieniach [syntax=basic4gl] Config Spi = Hard , Interrupt = Off , Data Order...
Czy czas wybudzania procesora nie będzie zbyt długi? W trybie IDLE wstrzymywany jest tylko CPU poprzez odcięcie sygnału zegarowego. Idle Mode When the SM2..0 bits are written to 000, the SLEEP instruction makes the MCU enter Idle mode, stopping the CPU but allowing SPI, USART, Analog Comparator, ADC, Two-wire Serial Interface, Timer/Counters, Watchdog,...
And what will happen when you will change the oscilator to 4MHz? Is it working perfectly? It should work with any quartz but maybe something is wrong. The decoding software usese interrupts and maybe try to disable all other(like timer0 etc). Give us a sign how it works.
"The pin change interrupt PCI2 will trigger if any enabled PCINT23..16 pin toggles. The pin change interrupt PCI1 will trigger if any enabled PCINT14..8 pin toggles. The pin change interrupt PCI0 will trigger if any enabled PCINT7..0 pin toggles. The PCMSK2, PCMSK1 and PCMSK0 Regis- ters control which pins contribute to the pin change interrupts. Pin...
GoTo SerISR Autor: er.lebaron(at)hccnet.nl http://www.elektroda.pl/rtvforum/files-r... Interrupt Routine for serial Data. Uses UART Get Serial Data via Interrupt This program can be integrated in your own program when you need a routine that captures serial data on interrupt basis. I intend to use it in a RS485 network with several nodes....
Witam. Z jakiegoś powodu, po odebraniu kodu RC5 program zwraca mi wyłącznie wartości 127, 255. Jak widać poniżej kwarc to 1.8432 MHz (zewnętrzny). W helpie BascomAVR nie widzę jednak nic na temat wpływu użytego rezonatora. Ale może jednak ma? O cóż może chodzić? [syntax=basic4gl]$regfile = "m16def.DAT" $crystal = 1843200 Dim Adres$ As Byte Dim Komenda$...
Myślałem o wykorzystaniu tych przykładów (z drobnymi modyfikacjami), w których konfiguracja procesora jest następująca: $regfile = "m88def.dat" $crystal = 8000000 $baud = 19200 $framesize = 128 $hwstack = 40 $swstack = 40 Dodatkowo dla mastera: Config Spi = Hard , Interrupt = Off - i dalej tak jak już miałeś dla Slava tak jak masz czyli Interrupt =...
Nie zmienia, bo masz błąd w innym miejscu. Dokładnie to miałem na myśli-że błąd jest gdzieś indziej. Zastanów się, co oznacza nazwa trybu CTC (?) – w ang. jest to ‘Clear Timer on Compare’ (pol. - wyzeruj zawartość licznika/timera, gdy jego zawartość jest równa wyznaczonej z góry i ustalonej, bądź to wyliczonej jakiejś wartości w zmiennej...
Witam, czy mógł by mi ktoś pomoc w napisaniu wyłącznika schodowego? Chodzi o to abym mógł podłączyć dwa przełączniki pod atmege i kiedy dowolnie który przełączę zmieni się stan na nóżce z diodą. Próbowałem z poleceniem Toggle ale coś nie potrafię sobie poradzić. Pozdrawiam i proszę o pomoc. Każdy najprostszy AVR, nawet Attiny 13 (taki by tu wystarczył)...
(...) Po stwierdzeniu obrotu kola wykonany zostaje podprogram ”Interrupt” gdzie inkrementuje się zmienna pomocnicza „Przebieg” wielkości bajta, by w wolnym momencie podczas wykonywania pętli, przemnożyć to przez obwód kola. Zabieg ten był wymagany gdyż bascom, nie radzi sobie z bardzo częstym wykonywaniem obliczeń zmiennoprzecinkowych...
bascom watchdog interrupt freertos interrupt interrupt event
odblokować start pulpicie naprawa zaworu zwrotnego plastik przekładnia
profil służbowy renaul trafic klimatyzacja
Miernik Metex M3630 uszkodzony po pomiarze 230V Minimalne napięcie AABCOOLING Super Silent Fan 12 PWM