MES Mariusz --> przecież w tym co pisałem nie chodziło o tworzenie na siłę przerwania dla RC5 bo to akurat dobry pomysł jak na Bascom, chociaż co nieco spowalnia pracę ale może być ;) Chodziło o podopwiedź że można utworzyć dodatkowe przerwanie, które przerwie ci INPUT. Jeśli chodzi o standard pisania programów to ja cię do niczego nie namawiam na siłę....
Generator podepnij do PINB.1 i config PINB.1=input
Sprawdziłem ten kod przed chwilą i jeśli na PD6 jest przycisk.. to jego kolejne naciskanie włącza lub wyłacza naprzemiennie diode LED na pinie PORTD.7 100% tested [syntax=vbnet]$regfile = "m644pdef.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Pcmsk3 = &B01000000 Enable Pcint3 : On Pcint3 Pcint3_isr Config Portd.6 = Input : Set...
A może zamiast input użyjesz inkey ?? Co ci sie na wyświetlaczu wyświetla ?
Ok rozumiem. Spróbuj tego. Użyte przerwanie. Można też zrobić bez zależnie od potrzeb. $regfile = "m8def.dat" $crystal = 8000000 Dim Zmienna As Word Dim A As Bit Config Pinb.1 = Output Config Pind.2 = Input Set Portd.2 '============ definicje timera ================================ Config Timer1 = Timer , Compare A = Toggle , Compare B = Disconnect...
Przykładowo można zrobić tak, sprawdź czy zadziała. Nie dałem powerdown ponieważ widzę że nie jest to potrzebne (bo z baterii działać nie będzie). [syntax=basic4gl] $regfile = "2313def.dat" $crystal = 8000000 Config Portd.3 = Input 'przycisk on/off Set Portd.3 Config Portd.0 = Output 'LED on/off Reset Portd.0 Config Int1 = Falling 'konfig przerwania...
Można, a w BASCOM-ie przerwanie od portu szeregowego nazywa się "serial" i to jego obsługą musisz się zainteresować. Przykładowy kod w BASCOM-ie 51: $crystal = 11059200 ' czestotliwosc kwarcu $baud = 2400 ' predkosc transmisji Dim X As Byte ' deklaracja zmiennych Enable Interrupts ' wlaczenie przerwan Enable Serial ' wlaczenie przerwania portu RS232...
Zasymulowałem Twoje środowisko i wprowadziłem kilka poprawek. Działa zgodnie z założeniami. Debouncingu nie dodawałem, choć przydałby się. [syntax=vbnet]$regfile = "m8def.dat" $crystal = 1000000 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.1 Config Lcd = 20 * 4 Cls Cursor Off noblink...
Witam sprawdź ten kod co prawda są inne numery portów i inny procek ale jak zmienisz powinno działać. Problem jest jeden w momencie jak naciskasz przycisk i zmieniasz końcówkę na WYJŚCIE to stan tego pinu Musi być (0) Niski , żeby nie zrobić zwarcia. '$sim $regfile = "attiny2313.dat" $crystal = 11059200 $baud = 9600 enable interrupts 'włącz...
$regfile = "attiny2313.dat" $crystal = 4000000 Config Pind.2 = Input Config Portd.0 = Output Config Portd.1 = Output Config Portd.3 = Output Set Portd.2 Przycisk Alias Pind.2 Dim Sekwencja As Byte Declare Sub Pierwsza Declare Sub Druga Declare Sub Trzecia Enable Interrupts Enable Int0 On Int0 Przycisk_przerwanie Do Loop End Przycisk_przerwanie:...
atom1477, przecież o ile jakieś przerwanie w międzyczasie nie zmienia Portd.5 to kod Nie chodzi o to żeby ustawił w końcu, tylko w momencie kiedy piszesz Pind.5 = 1: No ale Portd.5 zamiast Pind.5 byłoby przejrzyściej. W ogóle przejrzyściej było by stosować ten zapis jeszcze zamiast Set Portd.5. Tysiące razy było. Do rejestru port zapisujemy a z rejestru...
xury - skoro już wykorzystujemy Bytematch=13 to nadal spokojnie można korzystać z Input tylko warto całość dobrze przemyśleć jak? polecam do przeanalizowania przykładowy kod pod koniec poniższego tematu http://www.elektroda.pl/rtvforum/topic14... tak jak tam widać - polecenie Input jest uruchamiane tylko wtedy gdy jesteśmy pewni dzięki Bytematch...
Idziecie nie w tym kierunku co trzeba. Trzeba zająć się odpowiednią obsługą komunikacji a nie watchdog'a. 1. Jeśli odbiór ma wykorzystywać Input to jest coś takiego jak: $Timeout = value 2. Komunikację radziłbym wykonać w oparciu o przerwanie od Urxc.
Za punkty - nie, przynajmniej nie ja. Ale cos pomóc mogę. Zrealizowałem już parę projektów uC + vb6 i jakoś one działają. Może zacznijmy od samego uC. Jeżeli był by to asm (bascom + zaawansowany bascomowiec) to zrobiłby to na dwuch tablicach które wyrażały by bufor odbioru i nadawania np rs_tx_bufor(12) as byte i rs_rx_bufor(12) as byte Można by to...
Witam. Mój układ ma realizować między innymi funkcję taką, że po naciśnięciu dowolnego przycisku na pilocie bez wprowadzania opóźnień z funkcji getrc5 wyłączać i włączać podświetlenie LCD. Problem nierozwiązany dla mnie od dłuższego czasu to występujące przypadkowo przerwania INT0. Jak wyeliminować ten problem programowo? Brak mi pomysłu na to. Oto...
wynik końcowy faktycznie za każdym razem jest inny. (at) emarcus możesz podpowiedzieć jak powinien wyglądać serwis int1? Popatrzyłem troche bliżej na twoj kod. Z jakiego powodu potrzebujesz otrzymać wynik ("Czas_2") z dokładnocią aż do 9 miejsc decimal? Jeżeli jeden z czynników iloczynu (rozdzielczość timera) jest liczbą wymierną z dokładnościa do...
Jak w temacie... zwieram pind.2 do masy i nic:( może powinienem przez jakiś opornik? oto kod w bascomie: Enable Interrupts Config Pind.2 = Output Set Pind.2 Config Int0 = Falling ... No bracie , jak Ty go ustawiasz jako wyjście ,stan wysoki i potem zwierasz do GND , to ciesz się tylko, że dym z niego nie poszedł. Miast Output daj Input - jeśli pin...
$regfile = "m32def.dat" $crystal = 8000000 Config Pind.5 = Output ' dioda 1 Config Pind.6 = Output ' dioda2 Config Pind.3 = Input ' przycisk int1 Set Portd.3 Enable Interrupts Config Int1 = Low Level On Int1 Przerwanie Config Int0 = Low Level On Int0 Przerwanie Config Pina.7 = Input ' przycisk Config Pina.6 = Input ' przycisk Config Pind.2...
Jeśli chodzi o kontroler to jest to Atmega8A A powinno to być ujęte w temacie... ;) XTAL1 and XTAL2 are input and output Czyli wejście to XTAL1. http://www.atmel.com/Images/doc8159.pdf strona 25.
1. BASCOM 2.0.7.5 2. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portd.7 , Rs = Portb.0 Config Timer0 = Timer , Prescale = 256 Enable Timer0 , On Timer0 Przerwanie Stop Timer0 Config Portb.5 = Output : Set Portb.5 'podświetlenie...
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ą...
Cały problem jest w tym żeby te dwie ATmegi się zsynchronizowały. Przerwanie od SPI występuje po zakończenia transmisji pierwszego bajtu. Zanim nastąpi obsługa przerwania to pierwszy bajt zostanie utracony. Nie mamy też gwarancji że dwie Atmegi "wystrzeliły" :) równocześnie i Slave nie czyta np. 4 bajtu nadanego przez Mastera. Jeżeli to by była np....
Zobacz jak ja to zrobiłem na Mega8 http://obrazki.elektroda.pl/8838731900_1... Program jaki zastosowałem korzysta z przerwania INT0 które po naciśnięciu klawisza wyprowadza procesor ze "śpiączki" , wysyła dane na IR i usypia go ponownie.Dla mnie takie rozwiązanie jest lepsze niż chwilowe zasilanie procesora poprzez diody. Poniżej wklejam...
Nie wiem czy dobrze myślę? po skompilowany i uruchomieniu programu w symulacji w okienku stackdepth : pokazuje wartość E4 czyli 228 . Jeśli dobrze myślę jest to max wartość wykorzystania RAM. W związku z tym pozostaje jeszcze 28 z 256 wolnego RAM. Jeśli się mylę to proszę mnie poprawić. Co pokazuje okienko stackdepth : w BASCOM 8051 ? Jeszcze drugie...
Wracajac do tematu czy moglbym prosic przynajmniej o pseudo kod obslugi przykladowo drgania w przyciskach , wysterowania przekaznika np przez 2s oraz komunikacji 1wire jednym timerem (atmega8 ma az 2 timery wiec pewnie szybko skoncza sie jego mozliwosci chcac napisac kod bez zatrzymywania) Cały dowcip polega na tym że z tego 8 bitowego timera możesz...
Przeorganizowałem twój kod z pierwszego postu bo w tym z dzieleniem i modulo to może działać ślamazarnie. Jeśli ci pasuje oczywiście. Licznik obsługuj w przerwaniu timera. A zmieniaj tylko wartość zmiennej za pomocą przycisków. To musisz sobie dopisać. Gdyby obliczenia w przerwaniu były za długie, przenieść je do głównej pętli, ale tutaj zawsze będzie...
Witam Jak odczytac dokładną wartośc z Timer0 (liczbę wszystkich impulsów), teraz zmienna A zbiera tylko same przepełnienia. [syntax=vbnet] $crystal = 8000000 config pind.4=input ' Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.5 , Rs = Portc.4 Config Lcd = 20 * 2 Cls Cursor Off Noblink Dim A As Single...
Njalepiej to przerwanie po UART recevie (nie wiem jak się na prawdę tutaj nazywa ale coś w ten deseń:) ) tam wpisujesz do jakiegos bufora daną, inkrementujesz zmienną wskazującą na bufor (żeby móc gdzieś potem sprawdzić czy jest coś do pobrania). I w programie głównym sprawdzasz "pozycję" w buforze... Jak pusto to nic, jak coś jest, to bierzesz z wierzchu...
Heh, no już się powtarzam... :) W głównej pętli programu jest instrukcja ; Input Rs_data Czyli, że nic mi nie pomoże żadne odliczanie czasu, bo przez 99% czasu program nic nie robi stojąc na instrukcji input, i czekając na dane z rs232. I właśnie dlatego wymyśliłem to przerwanie, żeby - kiedy przyjdzie zapytanie o temperaturę, były te dane już gotowe....
juz to robie w inny sposob, ale teraz mecze sie nad czyms innym... chce zrobic licznik impulsow zewnetrznych, na timerze 1 ale nie za bardzo chce mi to wyjsc... po prostu program nie chce wejsc mi w przerwanie :( czy moglby mi ktos napisac co powinienem ustawic poza: config Timer1 = timer, prescale = 1 set (pin tam gdzie jest t1) (pin gdfzie...
Witam. Wiem o tym co napisałeś, ale przed input jest sprawdzane czy jest co pobrać (ciąg zakończony LF) i jeśli jest co pobrać to jest pobierane w całości (jako string). A działa to tak: - zbiera się znak i jest zgłaszane przerwanie - kolejne znaki trafiają do bufora - jeśli ostatni znak jest LF (10) to jest wystawiana flaga że jest cała ramka to jest...
$regfile = "m8def.dat" $crystal = 1000000 Config Portc = &B1111111 Portc = &B1111111 Config Portd = &B11111111 Portd = &B11111111 config pinb.1= input ' tego nie miales a bardzo wazne S1 Alias Pinb.1 Set Portb.1 Declare Sub Buz Declare Sub Buze Declare Sub X Dim Flaga As Bit Dim I As Byte Flaga = 0 Call X Do If S1 = 0 Then Waitms 45 If S1...
Mniej więcej wiem jak działa timer0, tylko nie wiem jak go wykorzystać w programie. W prostych programach, podają jak załatwić sprawę przy 1 diodzie, a ten program z linku jeszcze jest dla mnie za trudny [syntax=basic4gl]$crystal = 8000000 Config Pinb.1 = Output Config Timer0 = Timer , Prescale = 64 On Timer0 Przerwanie Dim A As String * 5 Dim B As...
cały kod aktualnie wygląda tak. Docelowo w pętli głównej będą inne rzeczy jeszcze. [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 $hwstack = 128 $swstack = 128 $framesize = 128 Config Portc.0 = Output Config Portc.1 = Output Config Pind.0 = Input Config Pind.6 = Input Config Pind.5 = Input Config Pind.7 = Output Config Timer0 = Timer ,...
Dzięki, mam jeszcze pytanie z innej beczki a mianowicie problem z obsługa przerwania. Config Pind.2 = Input Config Int0 = Low Level On Int0 Przerwanie A = 0 F = 0 Enable Interrupts Enable Int0 Do If Ok = 0 Then Waitms 50 If Ok = 0 Then Sound Buzer , 1 , 100000 Set Buzer Gosub Menu End If End If If F = 1 Then Cls Lcd "przerwanie" Wait 1 Cls...
Jeżeli piszesz w bascome to proponuje funkcje: INPUT $baud = 1200 $crystal = 12000000 Dim V As Byte start: input V p0=V goto start Zasada jest taka program czeka na w lini "input V" na odebranie czegos przez port RS jesli mikrokontroler odbierze to przechodzi do nastepnej lini i ustawia port p0 w wartosc odczytana z rsa nastepnie powraca spowortem...
Dziękuję bardzo za wszelkie informacje jakie uzyskałem, bardzo pomogły. Natomiast problem był natury programowej, a dokładnie niedziała jedna komenda w języku BASCOM - "input" - nawet gdy wysyłam znak końca chr(13). Dopiero trzeba było uruchomić przerwania i napisać procedurkę na przerwanie. Natomiast chciałbym się podzielić z wami moimi przemyśleniami...
Witam, Napisałem program, który po wciśnięciu switcha (podaniu napięcia na PinB. 1 i PinB. 2 przez kilka sekund) ma migać diodami w kolejności 123 lub 321 w zależności od wciśniętego switcha. Po naciśnięciu switcha 1. diody przez cały czas zaświecają się po kole 123 i tak przez cały czas. Przerwać może tylko wciśnięcie switcha numer 2 i włączenie funkcji...
Config INT0 zdeklaruj jako FALLING. Na początku dopisz Config Portd.2 = input Wywal Enable Interrupts z podprogramu przerwania int0, komendę Disable int0 zostaw. Obsługa RC5 w bascomie AVR to gorzej niż porazka. Najgorsze jest to że ci wstrzymuje program na kilkaset milisekund. RC5 w przerwaniu to MEGA porazka. Wiesz jak to działa? Przychodzi kod RC5,...
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...
Proszę. Gotowe bo jak widzę kilka If`ów do tej samej zmiennej zamiast Select Case i tym podobne kwiatki... [syntax=vbnet]$regfile = "m32def.dat" $crystal = 11059200 $hwstack = 64 $swstack = 16 $framesize = 64 Const Timeout_time = 8 'x500ms Config Submode = New ' config LCD 2X16 Config Lcdpin = Pin , Rs = Porta.2 , E = Porta.3 , Db4 = Porta.4 , Db5 =...
Witam ! Tworzę mały sterownik do auta i mam problem. Dotyczy on pomiaru częstotliwości (a właściwie czasu trwania stanu niskiego lub wysokiego) na Atmedze 128, która po dalszych przeliczeniach będzie mierzyć obroty silnika. Sygnał , który będzie mierzony to prostokąt o wypełnieniu 50% i częstotliwości w granicach 15-150Hz. Jak w tytule pomiar ma się...
Witajcie. Robię malutkie projekty korzystając z Bascoma. Do tej pory wyłącznie na 2313 i jakoś sobie radziłem. W nowym projekcie postanowiłem zastosować Atmega8535 i od razu natrafiłem na problem. Mianowicie po włączeniu przerwań od Timer0 nic nie działa jak powinno. Pomimo tego że procedura obsługi wyświetlacza jest wołana z obsługi przerwania na wyświetlaczu...
Pisanie na kilkanaście minut i zobacz że lepiej to wygląda niż twoja sieczka. Do tego możesz teraz bardzo łatwo dodawać sobie kolejne efekty. Jak nie zadziała to sobie popraw :-) [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Portd.0 = Input Config Portd.1 = Input Config Portd.2 = Input Config Portd.3 = Input Config Portc = Output...
Teraz nie rozumie juz nic. Z tego co bascom robi w powerdown.Wygląda jakby tylko włączał zezwolenie na tryby uśpienia. Czy ja coś źle odczytuje? Czy kolega Zumek mógłby napisać w ASM przejście do ST-BY dla tego Attiny? Bo według mnie było by to tak: $asm !IN R24,mcucr !ORI R24,0x20 !Out mcucr , R24 !IN R24,mcucr !ORI R24,0x50 !Out mcucr , R24 SLEEP...
Czy da się generować przerwania od timer2 przy każdym przepełnieniu w trybie CTC? Próbuję generować częstotliwość w zależności od ustawienia potencjometru, ale timer generuje przerwanie tylko raz, cały program poniżej: OCR2 zostaje wpisana tylko pierwsza odczytana wartość zaraz po starcie programu, dalej już nie generuje przerwań. Po wrzuceniu " OCR2...
Przełącznik mechaniczny w mikrokontrolerze? -to taki elektroniczny mezalians.Z uwagi na ważny temat napisze mój programik ' uwaga niedoskonały' $regfile = "m8def.dat" $crystal = 1000000 Config Pinb.1 = Output Config Pind.2 = Input Config Pind.1 = Input 'port do Int0 Set Portd.2 ' podciągam na stan wysoki Set Portd.1 Wy Alias Pind.1 ' zamiana nazwy ReturnWl...
WItam Mam taki prosty programik, ktory ma reagowac na 1,2,3,4 lub 5 impuls (zbocze opadajace) w zaleznosci od tego co ustawie. Problem polega na tym ze caly program dziala tak jak chce. Reaguje na 1,2,3 itd zbocze ktore ustawie tylko ..za kazdym razem po przerwaniu miga mi dioda led. Wyglada to tak jak by uC sie resetowal i zaczynal start programu od...
Wciąż nie wiem czy ustawiłeś BODLEVEL na 2,7V i czy BDOEN = enable. Racz to sprawdzić. Przy ustawionym BODEN i BODLEVEL - układ pobiera prawie 1,2mA prądu - zbyt dużo. Dodano po 41 Teoretycznie według dokumentacji ta wersja procesora pracuje od napięcia 2.7V. Wgrałem ten kod i układ pracuje OK, zawiesza się bardzo rzadko - należy wtedy odłączyć zasilanie...
regfile = "m8def.dat" $crystal = 8000000 Config Pinb.0 = Input Config Pinb.1 = Input Config Pinb.2 = Input Config Pinb.3 = Output Config Pinb.4 = Output Config Pinb.5 = Output Config Aci = On , Compare = Off , Trigger = Rising On Aci Przeciazenie Enable Interrupts Gora Alias Pinb.1 Dol Alias Pinb.0 Zatrz Alias Pinb.2 Wlacz Alias Portb.3 Wej1...
Witam, powracam do tematu. 1. uP: Atmega8515 2. Mysz: mysz optyczna PS/2 3. Środowisko: Bascom AVR Zapoznałem z materiałami z linków McRancor - dzięki serdecznie. Postanowiłem wykorzystać te informacje i skomunikować uP z Myszką poprzez PS/2. Więc podłączyłęm zasilanie myszy - zaświeciła (mysz opto) Nie wiem jednak jak ugryść to dalej. Posiadam jeszcze...
A ja dzisiaj nie byłem w pracy. Wziąłem zaległy urlop z 2007r. I oto co zrobiłem 'program do pomiaru czasu wciśnięcia przycisku podpiętego do PD.2(INT0) i PD.3(INT1) przez układ RC tłumiący drgania przycisku. 'Przy tych ustawieniach Timer1 zwiększa się co 128us a licznik przepełnia się co 8.389s 'Program sprawdzony i działa. 'W celu...
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...
Zamieszczam minimalną ilość kodu potrzebną do obsługi suwmiarki, czyli odczytania pomiaru i jego wyświetlenia. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 16 * 2 ' konfiguracja lcd Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portc.5 , Db6 = Portc.4 , Db7 = Portc.3 , E = Portd.1 , Rs = Portd.2 'piny na lcd '***************************************...
Witam Posiadam silnik z dołączonym enkoderem i tarczą (z drukarki), steruję prędkością obrotową za pomocą PWM, natomiast przerwanie INT wykorzystuje do zliczania obrotów silnika. Problem polega na tym że zliczanie obrotów silnika bez uruchomionego PWM działa poprawnie, gdy go włączę szaleje (nawet gdy obracam tarczkę palcem). Sygnały od enkodera są...
'fusebit A987 0100:0100 osc $regfile = "m8def.dat" $crystal = 8000000 Config Pind.0 = Output 'PRZEKAZNIK Config Pind.6 = Input 'KLAWISZ Klawisz Alias Pind.6 Przekaznik Alias Portd.0 'podpiecie klawisz pod "1" Portd.6 = 1 Przekaznik = 1 Do Do Loop Until Klawisz = 0 If Przekaznik = 1 Then Przekaznik = 0 Else Przekaznik = 1 End...
Witam! Natknalem sie ostatnio w bascomie na taki problem: po wykryciu przerwania (odbiornik podczerwieni tfms5360 podlaczony pod int0) powinien odbyc sie skok do etykiety i tam odczytac dane, wysylane przez pilota rc5 za pomoca komendy getrc5. Fragment programu odpowiedzialny za te opcje znajduje sie ponizej: Config Rc5 = Pind.2 Config Pind.2 = Input...
Witam ponownie, oto on, poprawiony, jednak dalej w kulawej formie: [syntax=basic4gl] $regfile = "attiny13.dat" $crystal = 1000000 $hwstack = 8 $swstack = 8 $framesize = 8 Config Int0 = Rising Config Timer0 = Timer , Prescale = 8 Config Pinb.1 = Input Config Portb.2 = Output Config Portb.4 = Output On Timer0 Etykieta Dim A As Byte Dim D As Word Enable...
Witam Mam mały problem z wykryciem przerwania na jednym z pinów A2560. Otóż jest tak: normalnie przerwania konfiguruję i wykrywam tak: On Int7 Readir Config Int7 = Low Level Enable Int7 Ale teraz muszę wykryć przerwanie na pinie z opisem: OC2A/PCINT4 Pod ten pin mam podłączone wyjście INT z PCF8583P i przerwanie powinno następować dokładnie co 1 sekundę.I...
Aaa...takie buty....:D Dzieki za wyjaśnienie sytuacji. A co do głównego wątku to udało mi się osiągnąć częściowo mój cel, bo program działa tak jakby odwrotnie...mianowicie, gdy zaczynam zasilać uC to procek po kolei ustawia stany portów: Portb = &B10111111 Portb = &B11101111 Portb = &B11011111 Portb = &B01111111 (i tak w kółko) Jak nastąpi przerwanie...
atom1477 -> może chociaż odpal jakiś Timer żeby Ci generował przebieg 36kHz na swoim pinie OCxx? To jeszcze nie wymaga używania jakichkolwiek przerwań. Nie rozumiem... nie wymaga przerwań? mam zrobione generowanie na OC1A. Ale chyba do tego potrzeba przerwania, przecież timer po przepełnieniu generuje przerwanie... $regfile = "m32def.dat"...
Witam, W temacie Open "comd.3:4800,8,n,1,inverted&quo... For Input As #1 Odczytaj_gps: Gpstxt = "" Przerwanie = 0 Do ' W tej pętli szukaj znaku "R" (82). Ona zsynchronizuje odczyt $GPRMC ... Gps = Inkey(#1) Incr Przerwanie Loop Until Gps = 82 Or Przerwanie = 1024 If Gps = 82 Then ' Jak znajdziesz to odbierz...
Poprawiłem tytuł na bardziej oddający problem i zgodny z regulaminem p. 3.1.15. Ponadto proszę się zapoznać z zasadami korzystania z działu: http://www.elektroda.pl/rtvforum/topic34... LordBlick Witajcie. Oświećcie mnie dlaczego ten program nie działa tak jak powinien. Przełączam przełącznik który pin PB1 zwiera do masy (pojawia się zbocze opadające...
Doprowadziłem program do takiej postaci: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 Config Timer0 = Timer , Prescale = 1 Enable Timer0 Enable Interrupts Enable Int0 Enable Int1 Stop Timer0 Timer0 = 0 Config...
Witam. Wiem, że podobne problemy był już wałkowane milion razy lecz nie mogę sam sobie z tym poradzić. Do rzeczy: Chcę aby po przyciśnięciu przycisku dioda zapaliła się po pewnym czasie na krótką chwilę. Chcę to wykonać na przerwaniu, zależy mi na precyzyjnie odmierzonym czasie od momentu naciśnięcia przycisku do zapalenia się diody. Czas palenia się...
Konkretnie to ma byc pilocik zrobiony z podkreslacza i nim bedzie sie sterowac elektroniczbym piornikiem i zamierzam to zasilic z bateri 3 V "pastylki" i bardzo mi zalezy na oszczedzaniu bateri . do kolegi emarcus nie bardzo rozumiem jak to jest z tym INTERRUPT ? czyli to ma byc tak ze pin przerwania w tym przypadku INT0 pind.2 musze ustawic w stan...
Napisalem takowy program i cosik nie dziala mi prawidlowo z przerwaniami,moze cos nie tak:/.Zamiast czekac na przerwanie to po uruchomieniu od razu wskakuje w program przerwania co moze byc nie tak??.Jak wstawie przerwanie INT0 to wszystko jest ok (podczas emulacji programowej) a w przypadku seriala odrazu wskakuje w przerwanie.Moze nie ma takiej mozliwosci...
Zacznij rejestrować konkretną ilość znaków po pojawieniu się litery "R". Występuje ona tylko raz i leży blisko interesujących cię danych. Gpstxt = "" Przerwanie = 0 Do Gps = Inkey(#1) Incr Przerwanie Loop Until Gps = 82 Or Przerwanie = 1024 If Gps = 82 Then Input #1 , Gpstxt Gpstxt = Left(gpstxt , 43) Dobry_odczyttxt = Mid(gpstxt...
mała podpowiedź było troche błędów w Twoim programie i przeczytaj co dopisałem wyżej odnośnie pull up [syntax=basic4gl]'----------------------... '--------------------KONFIGURACJA-------... $regfile = "m8def.dat" 'informuje kompilator o procesorze $crystal = 8000000...
Witam. Po pierwsze nie zauważyłem wcześniej, że już skonfigurowałeś Serialin0. Błędem natomiast jest jest używanie Serialout0 a potem zamiast to wrzucić do bufora to wycinasz po jednej literce ze stringa i nadajesz pojedynczo... Po prostu napisz Print String i zapomnij. Bascom sobie to sam wyśle. Tobie radzę na razie nie korzystać z Serialout0 w ogóle....
Program o który mi chodzi miałby działać tak: mierzę napięcie na jednym z pinów, jeśli jest ono mniejsze niż pewna określona wartość to na innym pinie pojawia się bardzo szybki przebieg prostokatny, powiedzmy 600kHz. Napięcie wzrasta- na wyjściu jest 0. Teoretycznie można by to zrealizować za pomoca przerwania: Maksymalna częstotliwość TINY13 to 9,6Mhz....
Ten program jest taki, że nie wiadomo od czego zacząć poprawiać. Najlepiej byłoby go napisać od nowa :D Niemniej poprawiłem to co ewidentnie musiało być poprawione. Tak na marginesie to nie wiem co za magik wymyślił te ponowne włączanie przerwań w obsłudze przerwania po to tylko by odebrać kod RC5 w przerwaniu. Ludzie to małpują i kłopoty gotowe. Sprawdź...
No właśnie tylko u mnie dość cienko z programowaniem i obawiam się, że może mnie to przerosnąć. Do tej pory udało mi się odpalić wiele rzeczy, ale nie wiedziałem ze z tym będą takie problemy. Dobrze by było jakbyście rzucili też okiem na całość programu, czy jest jakoś w miarę poskładany. Edit: Znalazłem coś takiego: [syntax=vb] //Timer1 Capture //Timer1...
Witam. Próbuję napisać program odpowiedzialny za pomiar odcinków czasowych pomiędzy impulsami sygnału S1 i S2 (zgodnie z załącznikiem). Proszę o prześledzenie kodu, wszelkie uwagi i sugestie mile widziane. Nie mam pewności co do poprawności pobierania wartości licznika TIMER1 za pomocą TCNT1. 'program do pomiaru okresu sygnałów podpiętych do PD.2(INT0)...
Witam. Od dłuższego czasu próbuje napisać program do obsługi klawiatury 2x3 w przerwaniu. Sporo szukałem na ten temat i wszędzie wszyscy doradzali getkbd() no a mnie niestety to nie urządza :( program testuje na ZL3AVR ale zamieszczę schemacik http://obrazki.elektroda.pl/9400053300_1... a tutaj mój kod: $regfile "m32def.dat"...
O wielkie dzięki. A jeszcze takie małe pytanko przerwanie zachodzi dopiero wtedy gdy pind.3 dostanie sygnał w tym wypadku ten nasz odbiornik czy dobrze to rozumiem ?? Napisałem taki program ale kurde jest straszny mały zasieg max do 3cm co w nim mozna byłoby zmienic ?? $regfile = "attiny13.dat" $crystal = 9600000 Config Pinb.4 = Output Portb.4...
Łap. Naciskając przycisk enkodera wybierasz czy ustawiasz sekundy czy minuty. Mikrokontroler przykładowy żeby tylko kompilator błedy sprawdził. Podstaw swój i swoje wyprowadzenia. [syntax=basic4gl]$regfile = "m328pdef.dat" ' config for encoder_switch Config Portd.4 = Input : Przycisk Alias Pind.4 : Portd.4 = 1 ' config for encoder Config Portd.2 = Input...
Po co stosować tu przerwanie? Kardynalny błąd to stosowanie polceceń opóźnień w przerwaniach. W tym programie problem tkwi w: If Przycisk = 0 Then Waitms 100 If Przycisk = 0 Then Incr Sekwencja If Sekwencja = 0 Then Incr Sekwencja If Sekwencja = 4 Then Sekwencja = 1 End If End If End If End If Popraw na: If Przycisk = 0 Then Waitms 100 If Przycisk =...
Może chodzi o coś takiego: $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Pind.4 , Db5 = Pind.5 , Db6 = Pind.6 , Db7 = Pind.7 , E = Pind.2 , Rs = Pind.3 'to w zasadzie nie jest potrzebne koniecznie Config Pinb.1 = Input Config Pinb.2 = Input Config Pinb.3 = Output Config Pinb.4 = Output Config Timer0 = Timer , Prescale...
Tak mi to wyszło to mój pierwszy program (nie licząc włącz-wyłącz diode) wiec proszę o wyrozumiałość. Częstotliwości jeszcze nie obliczyłem bo mam z tym trudności. Nie wiem tylko czy dobrze zrozumiałem ze timer1 w trybie Pwm jako jedno przerwanie zlicza jeden cykl [syntax=basic4gl]$regfile = "2313def.dat" $Crystal=8000000 Config Pinb.3 = Output Config...
Nie spotkałem w bascomie funkcji do konfiguracji Pin change innterrupt ani przerwania od watchdoga, ale oczywiście można to zrobić na rejestrach. W bascomie nie znam zawartości pliku ATtiny44.dat Czy oprócz nazw rejestrów są jeszcze bity? [syntax=basic4gl]$regfile = "ATtiny44.dat" Dim Praca as Bit Praca = 0 Config PINA.5 = Input PORTA.5 = 1 'włącz wewnętrzne...
Powertowalem trochę forum i rzucił mi się w oczy taki kodzik: [syntax=vb]$regfile = "m16def.dat" 'informuje kompilator o pliku $crystal = 8000000 'informuje kompilator o częstotliwości oscylatora Config Timer0 = Timer , Prescale = 256 Config Portd.2 = Input Config Int0 = Falling Dim L As Byte Dim L2 As Byte Dim L3 As Byte Dim Wynik As Byte Config Lcd...
Witam, udało mi się coś wyskrobać i zrobiłem na razie sam generator częstotliwości, właściwie jakoś tam działa ale chyba napisałem to dookoła , może ktoś spróbował by to jakoś poprawić. Nie dodałem jeszcze generatora PWM, próbowałem ale nie wychodziło mi, chciałem taktować go z wejścia T1 ale nie udało mi się to, nie wiem jak go zmusic do tego żeby...
Ok, nikt więcej nic nie podpowiedział, więc pomyślałem jeszcze trochę. Wydaje mi się, że sniffowanie transmisji będzie łatwiejsze. Wyświetlacz obsługuje sprzęt audio, więc nie ma tutaj szybkich zmian na wyświetlaczu. Po przeczytaniu datasheetów, doszedłem do wniosku, że w momencie opadania zbocza E wszystkie sygnały muszą być stabilne. Wydaje mi się,...
Hmm, moim zdaniem gdzieś jest zmienna 8 bitowa (Byte) musisz zmienić ją na większy typ. np. Word, Long. zmienna word Dodano po 1 A czy trzeba konfigurować port Config Pinb.0 = Input Set Portb.0 pod counter0 atmega 32 Dodano po 11 [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 8 $framesize = 24 Config Lcd = 16...
Witam. Od razu mówię, że działam na ATtiny2313. Chciałbym przedstawić kod, nad którym głowię się już dość długo i ciągle nie działa, kod jes banalny a jak to mówią diabeł tkwi w szczegółach, więc może ktoś z forumowiczów może mi pomóc. Kod wygląda tak: 'Program powinien (wlasnie! - powinien) pobierac sekwencje przerwan 'z odpowiednich portow...
1) Po ifach nie masz end if 2) Warto dopisać Start timer0 bo z bascomem różnie to bywa 3) Zrobić tak jak ci pisali poprzednicy- licznik przenieść do przerwania 4) Skonfigurowałes sobie portd jako input i nie właczyłes podciągnięć do vcc (może nie potrzebujesz), ale pamiętaj o tej niedoróbce żeby zaraz nie było że ci przycisk jakiś nie działa 5) Dodałem...
Witam Mam taki problem, napisałem program w bascomie, w którym również korzystam z przerwania na INT0 (atmega8-16pu). Ale: Po włączeniu zasilania program przechodzi do obsługi przerwania i zostaje tam na amen - w czym jest błąd. Proszę o jakieś wskazówki. Płytka jest wykonana prawidłowo, na int0 jest stale 5V (podciągnięte do VCC zew, z wyjątkiem kiedy...
Witam Jestem nowy na forum i w temacie mikrokontrolerów. Mam płytkę Evb 4.3 v4 na procesorze Atmega644p (duży sprzęt jak na początkującego, ale lepiej kupić raz a lepiej). Czytałem trochę na temat programowania w BASCOMIE na stronie http://www.dioda.com.pl/forum/topics20/k... (kopiowałem sobie programiki...
Bascom - przykładowy działający kod do testowania RFM12 na 868MHz Odbiornik generuje przerwanie po odebraniu z nadajnika Byte 2D D4 i dopiero odbiera dane użytkowe, czyli Data_in(1)...Data_in(7) Odbiornik: 'Odbiornik $regfile = "m8def.dat" ' specify the used micro $crystal = 8000000 ' used crystal frequency $baud = 19200 ' use baud rate $hwstack...
Witam, Mam problem z pomiarem czasu trwania impulsu. Próbowałem różnych sposobów, siedzę już nad tym 3 dzień i nic mi nie wychodzi. Na wejście INT0 atmegi32 podaję sygnał np. 30Hz i wypełnieniu 15%. Sygnał jest stabilny więc tutaj problem odpada. Potrzebuję zmierzyć czas trwania stanu wysokiego. W programie który stworzyłem na wyświetlaczu wyświetla...
No to sprawdź ten kod [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 $sim Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.0 , Rs = Portd.1 Config Lcd = 16 * 2 Config Portc.5 = Output Config Portc.4 = Output Config Pind.2 = Input Config Portd.2 = 1 ' załaczenie rezystora podciągającego On Int0...
Odbiornik RC5 działa. 1 na pilocie wyłącza diodę, 2 włącza $regfile = "attiny2313.dat" $crystal = 1000000 Config Rc5 = Pind.2 Config Pind.2 = Input Config Portb = Output Dim Address As Byte , Command As Byte Enable Interrupts Do Getrc5(address , Command) If Address = 0 Then Command = Command And &B01111111 Select Case Command Case...
Witam, Jestem początkujący w programowaniu bascom chcę zrobić licznik impulsów podawanych na timer o jako licznik . Zrobiłem licznik ale liczy max 255 a ja potrzebuje licznik z 99999 . Nie bardzo wiem jak mam to zrobić .Proszę o pomoc $regfile = "m8def.dat" 'Info dla kompilatora. $crystal = 16000000 'Informujemy kompilator o kwarcu 16MHz....
$regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portd.7 , Rs = Portb.0 $lib "mcsbyte.lbx" Cursor Off Config Pinb.1 = Input Portb.1 = 1 Config Rc5 = Pinb.1 Dim A As String * 2 'Deklaracja umożliwiająca działanie komendyGETRC5 Dim...
Witam, zmontowałem Sterowanie do trackera do solara na atmedze 328 i pojawia się problem z dzialaniem przycisków. Otóż raz działa wszystko, raz jak nacisnę jeden to działa jak drugi, raz nie działa wcale. Dotyczy to wszystkich przycisków. Zwarc w układzie nie ma. Na załączonym schemacie nie zwracajcie uwagi na zwarcie przy LCD (błąd w schemacie). Dodatkowo...
Szanowny Panie (at)tadeko9 , przepraszam za mój poprzedni, faktycznie szorstki, ton. Co złego to nie ja :D W pierwszym poście dołączył Pan taki kod: Dlatego dołączam od razu ten dla powyższego kodu. [syntax=avrasm]2: $regfile = "attiny2313.dat" 3: $crystal = 4000000 4: $hwstack = 40 5: $swstack = 16 6: $framesize = 32 7: 8: Config Portd.2 = Input :...
Witam. Napisałem sobie prosty program do sterowania fazowego: $crystal = 8000000 $regfile = "8515def.dat" Detfazy Alias Pinb.1 Config Detfazy = Input Q2 Alias Portc.1 Config Pinc.1 = Output Config Timer1 = Timer , Prescale = 8 Stop Timer1 On Timer1 Irq_t1 ' jeśli nastąpi przerwanie od timera Timer1 wykonaj procedurę Irq_t1 Enable Timer1 Enable...
program ma wysyłać bity. I wysyła, tylko nie takie jak bym chciał. w tym przypadku na linii wyjściowej dostaje coś takiego: 1, około 3ms przerwy, 1010101010101011, przerwa 6ms, 101. czas trwania stanu wysokiego się zgadza, tylko czemu dostaje taką sieczkę?? sygnał zegarowy ma okres około 400us. $regfile = "m16def.dat" $crystal = 16000000 Dim...
Dzięki za podpowiedz. Już to sprawdzam. Edit: Jak podałeś w stringu były dane LF na początku odczytanego stringa i dlatego był problem z tłumaczeniem zmiennej. Dzięki za naprowadzenie! Jeszcze wątku nie zamykam, gdyż mogę jeszcze trafić na problem i w razie czego szkoda zakładać nowy wątek. Pozdrawiam Edit2: Niestety powracam z problemem :( Program...
bascom input input bascom przerwać przerwać bascom
alpine kostki testy akumulatorów pomiar małych oporności
lifepo4 trwałość lifepo4 tracą
Błąd A83 w kotle Beretta Ciao AT 25 C - przyczyny Hyundai Tucson 2.0 CRDi 2006 – przekaźnik zaworu ciśnienia paliwa, MAIN RELAY, ECU, EFI