Generator podepnij do PINB.1 i config PINB.1=input
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łę....
Nie lepiej odczytywać UART za pomocą Inkey() ? Najlepiej jeszcze w przerwaniu. Zamiast Input wykorzystać buforowanie i Bytematch=13
A jak miało by się do tego polecenie INPUT w przerwaniu?
...a tak z ciekawości zapytam jak długi zadeklarowałeś ten string LINIA ??? skoro jak rozumiem obsługujesz zapewne SMSy. To chyba długość co najmniej 160 hmmm ??... U mnie , zmienna Line ma rozmiar 30B , ponieważ pobieram do niej tylko ... jakby tu powiedzieć ... mnemoniki komend AT i ich parametry , a SMS-a dekoduje "w locie" , w czasie przerwań od...
P.S. Oczywiście, że przerwania lepsiejsze:) Zwłaszcza z buforem :)
Rozumiem co piszecie ale działać nie chce :-( Jak sprawdzam port na którym jest przerwanie tak ordynarnie IF ... THEN ... to mam sygnał 1Hz. Jak włączam przerwania to nic się nie dzieje i nieważne czy PortD.6 jest Input czy nie i czy jest ustawiony na 1 czy nie.
Witam, zanim zabierzesz się za pisanie własnej obsługi przerwań do RS232 w Bascomie, to może najpierw spróbuj zrobić to w oparciu o dobrodziejstwa jakie daje ci Bascom. nie znasz poleceń INPUT , INKEY czy PRINT ???? do tego jeszcze może Config Serialin bo w powyższym kodzie odstawiasz niezły "miszmasz" i nie ma co się dziwić, że ci nie działa. Oczywiście...
A może zamiast input użyjesz inkey ?? Co ci sie na wyświetlaczu wyświetla ?
Jak zrobic Input w przerwaniach ? mam program dla atmega16 odbierajacy dane w przerwaniach aczkolwiek jest to zrobione w taki sposob ze odczytuje Udr i przypisuje jej wartosc do jakies zmiennej no i nie mam jak "ladnie " wyslac np liczby 53 <przypisywanie rejestru Udr do zmiennej powodoje ze zczytywane sa z klawiatury kody ascii a 53 ma "5">
pewnie piszesz w bascom ,wiec masz kod odbierania danych (całych stringów ) w przerwaniu :) : Config Serialin = Buffered , Size = 20 do If Ischarwaiting() = 1 Then '1 - odebrano znak,0 - pusty bufor Call Read_rs232 End If loop Sub Read_rs232 Dim Bufor As String * 24 Input Bufor Noecho end sub
Jeślii masz wolny pin to możesz sobie na nim otworzyć port COM. Taki programik wciągający cztery bajty po serialu zajmuje w Bascom 288 B a to pewnie dlatego że jeszcze musiał się zająć stosem i tablica przerwań co Ty juz pewnie tez masz zrobione więc to by odpadło. Zapisujesz to sobie do Eeproma przy starcie i gotowe. [syntax=vbnet]$regfile = "attiny13A.dat"...
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...
Bufor nadawczy nie jest zwykle tak potrzebny jak odbiorczy szczególnie jeśli korzystamy z prędkości większych niż 9600 i nie mamy zbyt dużo do nadawania. Jeśli jednak już się stosuje bufor wyjściowy to zapewne przyśpieszy i usprawni proces nadawania - bo często to co mamy do nadania wrzucone jest tylko procedurą PRINT do tegoż bufora , program leci...
Mnie zastanawia jedna rzecz, skoro korzystasz z przerwań to po jakiego grzyba tam input? Zobacz jak mozna to rozwiazac: Odebrano: Disable Urxc ' wylaczenie przerwania na czas trwania aktualnego 'Jesli licznik znakow jest mniejszy od maksymalnego rozmiaru bufora to... If Licz_znaki < Max_znakow Then '...zwieksz licznik znakow, do buforu transmisji...
Bascom 51 przy instrukcjach input,inputbin itd. nie korzysta z przerwań lecz cyklicznie odczytuje rejestr SBUF .Dlatego bardzo rzadko to działa.Jeśli chcesz mieć pewny odbiór to korzystaj z przerwań. A-r.
Jak dla mnie najlepszy sposób na odbiór to zastosowanie Bytematch=13 i odczyt z bufora przez Input, ale nie w przerwaniu tylko w pętli po sprawdzeniu flagi. Nie ma się co bać, że program zawiśnie na Input ponieważ odbiór następuje po sprawdzeniu flagi.
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...
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...
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...
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.
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...
Przeczytałem to co jest wyżej napisane i... nie rozumiem co chcesz zrobić :) Co to znaczy: Potrzeba mi zapamiętać max. 4 liczby które będą następować po sobie dość szybko jednak Atmega potrafi je zdekodować bo jak dobrze się przypatrzę to liczby się zmieniają dobrze, i więc właśnie niech ktoś podpowie, co dopisać by procesor zapamiętał liczby i ustawił...
Nie możesz "przekierować" pinu. Przypisanie przerwania zewnętrznego jest hardwareowe. Generalnie wszystko zależeć będzie od tego jak masz skonstruowaną główną funkcję. Jeżeli stosujesz w niej co rusz jakieś opóźnienia to będzie lipa, ale jeżeli cała główna funkcja wykonuje się szybko, bez zbędnych opóźnień to wtedy bez problemu w głównej pętli analizujesz...
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...
Tu są opisane przerwania od seriala: http://www.ep.com.pl/forum/printview.php...
Trzeba mierzyć czas impulsu i jeśli wynik = ileśtam to wtedy dzieje sie cośtam Może : $regfile = "twój uP" $crystal = twój crystal Config Timer1 = Counter , Edge = Rising Config Portc = Input Do If Portc.1 = 1 Then Start Timer1 If Portc.1 = 0 Then Stop Timer1 End If End If For Timer1 = 100 To 200 Reset Porta.1 Next For Timer1 = 300 To 600...
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...
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...
Bascom nie wykorzysuje przerwań do realizacji funkcji Print i Input. Ale problem będzie bo już samo włączenie UARTa w procesorach AVR włącza pin TXD do wysyłania danych i nie można stanu tego pinu zmieniac programowo. Nawet jeżeli nic sie nie wysyła. Odczywywać się nie da tym bardziej. Dodano po 1 I to niezależnie od tego czy wykożystasz BASCOma, AVR...
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...
$regfile = "m8def.dat" Config Pind.6 = Input Config Pinb.5 = Output Config Pinc.0 = Output Config Int0 = low level Config Int1 = low level Dim A As Byte A = 0 Declare Sub Lewo Declare Sub Prawo Declare Sub Zatrzymaj1 Declare Sub Zatrzymaj2 Radio Alias Pind.6 Enable Interrupts ' zezwolenie na obsługę przerwań Enable Int0 Enable Int1 On Int0...
Bo pierwszy kod jest logicznie błędny. Do stringa dodawany jest znak entera, a nie powinien. Poza tym skoro i tak czekasz na enter to dlaczego nie użyjesz input ? A tak poza tym to proponuje robić odczyt w przerwaniu. Polega to na odpowiednim skonfigurowaniu "Config serialin" i jego opcji BYTEMATCH.
Analizowałem dla innego kolegi mój program w którym stosuję UART. Widzę, że na początku odblokowałem globalne przerwania z adnotacją jak niżej. Enable Interrupts 'Przerwania od UART zaszyte w Bascomie Wstaw może tą linię w swój program. Poczytaj help'a - CONFIG SERIALIN
Witam W obsłudze przerwania nie powinno być żadnych waitms itp poleceń które blokują program, Wykorzystaj timer i flagi do odliczania konkretnych odcinków czasu a wszystko inne powinno leżeć w do loop. W przerwaniu nie ma po co wyłaczać timera, tylko trzeba zrobić dzielnik tak aby flaga była ustawiana co 4ms lub 3ms tak jak chciałeś mieć. Potem trzeba...
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,...
$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:...
Według mnie obie są błędne, a pierwsza jest karygodna. Błędy pierwszej: 1. Wait w obsłudze przerwania !!!!!!! 2. Odczyt w przerwaniu przez input, a bez bufora - po odebraniu znaku zawiśnie na Input. Błedy drugiej: 1. Zupełnie nie potrzebny Gosub 2. Skoro wykorzystujesz bufor to dlaczego nie Bytematch = 13 ? 3. Znowu Input zawiśnie.
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....
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...
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.
Chciałem odnowić temat ponieważ mam problem z wykryciem zaniku napięcia. W Bascomie mam skonfigurowane zewnętrzne przerwanie na into 0 tak: Config Int0 = Rising On Int0 Zapis_pamieci Enable Int0 Dla mojego mikro kontrolera Port na którym jest przerwanie tak: 'Config Portd.0 = Input 'Rezerwa (w spoczynku 1) 'Config Portd.1 = Input 'Rezerwa (w spoczynku...
Tak karta SD na sprzetowym SPI a RFM12b na wolne piny wdg deklaracji : Config Rf_sck = Output Config Rf_sdo = Input Config Rf_nirq = Input Config Rf_sdi = Output Config Rf_nsel = Output Ale najpierw spróbuj uśpić RFM12 i wtedy zapisuj na SD może na wspólnej szynie będą chodzić bez zakłóceń Przy nadawaniu i odbieraniu z RFM12B koniecznie należy wyłączyć...
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...
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...
Do tej pory programowałem c51 tylko w atmelu ostanio zacząłem korzystać z bascoma, przerobilem sobie college z Edw i pojawiło mi się kilka pytań??? - Czy jest darmowa wersja Bascoma współpracująca z procesorami 89c51 (40 nóżkowymi) - Jak zrealizować transmisję szeregową w Bascom (wiem tylko że używa się do tego poleceń print, input, output...ale jak...
To nie jest dobry sposób na odczyt bufora. [syntax=basic4gl] '------------------------Odczyt UART w przerwaniu------------------------------... Serial0charmatch: Enter = 1 If Ignoracja = 0 Then Input Todczyt Noecho End [/syntax] Zawsze miałem kłopoty ze skompletowaniem linii oraz pojawiało się dużo przekłamań jak używałem Input. Lepszym sposobem jest...
Witam, Niestety deklaracja programowego uarta w BASCOMIE dla ATTiny26 mi nie działa np: 'Open a TRANSMIT channel for output Open "comb.1:4800,8,n,1" For Output As #1 'Now open a RECEIVE channel for input Open "comb.0:4800,8,n,1" For Input As #2 Czy zna ktoś metodę na zrealizowanie Uarta w Attiny26 w najbardziej lajtowy sposób...
Witam. Chciałbym uzyskać efekt parametru echo on instrukcji input (mikrokontroler otrzymuje znaki po UART, i natychmiast wysyła je spowrotem) dzięki czemu na ekranie monitora portu COM będę miał wyświetlane wpisywane przez siebie znaki. Niestety używam konwertera http://obrazki.elektroda.pl/2797859300_1... Oczywiście w takim przypadku...
Witam Chciałem zrobić prosty sterownik światła na pilota. Poniższy kod nie daje się skompilować - czy są jakieś przeciwwskazania do pracy Attiny45 + RC5 ? Kod wyrzuca błąd 320 w linii 64 ( czyli tam, gdzie jest Return ) - syntax error = ' Wygląda że brak jest podłączenia IR Receivera... Config Rc5 = PINB. (?) Compiler musi wiedziec, pod który pin jest...
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. 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...
Dzieki ksz o to mi właśnie chodziło ! Mam tylko jeszcze jedno pytanko jak napisac programik aby np na dany kod przycisku ( 0x00000000000009F6) zmieniał stan portu ! Niezabardzo mam pomysł jak to zrobic w bascomie ! myśle nad podpięciem pod int0 tylko niewiem jak program ma mniej więcej wyglądac ! Robiłem niedawno odbiornik podczerwieni (w C), użyłem...
Teraz spłodziłem coś na chacie w bascomie ;-) Może w końcu ta koncepcja ruszy.... uwzględnia drgania styków, działa na innej zasadzie... powinna byc odporna na wszelkiego rodzaju czasy między puszczeniami wciśnięciami itp... w przerwaniu co 10ms sprawdzamy stan przycisku zadziałanie przycisku następuje najwcześniej po 10 jego sprawdzeniach (po 100ms)...
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...
Przede wszystkim w komunikacji po Usarcie to przeszedł bym na przesyłanie ASCII, a wyrażenie kończyłbym znakiem CR (13). Wtedy możesz wysyłać odebrane ciągi na wyświetlacz, bez używania stałych. Używaj do tego zwykłego Print zamiast printbin. Tak swoją drogą nie wiem czemu większość początkujących próbuje komunikować się poprzez Printbin zamiast używać...
Witam Chciałbym się poradzić bo mam problem z uC i/lub bascomem (nie wiem czym jest to spowodowane). Otóż napisałem sobie prosty program który ma zapalać diodę po podaniu na jedną nóżkę uC stanu niskiego dioda podpięta pod inny pin zapali się na 200 ms i zgaśnie z powrotem.Okazało się jednak że uC nie reaguje na podania gnd na nóżkę wejścia. (sprawdzałem...
UART konfiguruje tak: Config Serialin = Buffered , Size = 22 , Bytematch = 13 a przerwanie: Serial0charmatch: lds r24,{event} inc r24 sts {event},r24 Return W pętli głównej czekam na event, i tu można byłoby przepisać bezpośrednio z bufora UARTa do tablicy. Tylko gdzie jest ten bufor i czy można bezpośrednio przepisać ramkę ?...
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....
Witam. Mam krotkie pytanie, na ktore nie znam odpowiedzi i prosze o pomoc. Czy PortC w Atmedze8 moze byc JEDNOCZESNIE wykorzystywany jako np. wejscie dla przycisku oraz jako przetwornik ADC? Problem mam taki, ze pod PortC mam podpiete kilka interfejsow, miedzy innymi termometr na 1Wire (PC1) oraz wlasnie przetwornik ADC (na linii PC0). I nie jestem...
do atom1477 mam odliczanie zrobione za pomoca config clock. To ze tak jak ty pokazales tez sie da to wiem, dziwne jest to ze jak samemu zrobisz to wiecej flashu zajmuje niz config clock, po 2 mi pasuje ten gotowy kod w bascomie. do mirekk36 dziekuje bardzo jak zwykle mnie uratowales, zaraz postaram sie napisac kod i powiem czy dziala. Myslalem ze nie...
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...
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...
No właśnie tylko zacząłem zabawę z atmegą w bascomie bawiąc się z coraz to większymi układami no i tak doszedłem do tego projektu co teraz. Ponieważ miał to być sterownik ogrzewacza który znajduje się w innym pomieszczeniu napisałem sobie aplikacje do układu który miał być panelem sterującym i do układu wykonawczego. Taki projekt przy którym też pewnych...
Po pierwsze musisz ustawić piny INT0 oraz INT1 jako wejscia (nie masz tego zrobionego) a samo aktywowanie przerwań nie ustawi tych pinów jako wejść czyli PIND.2 = Input PIND.3 = Input druga sprawa - po co włączasz aktywowanie przerwań poziomem niskim (Low level) ??? - wystarczy w zupełności. w takim przypadku, jeśli wyzwalanie przerwań będzie robione...
oki sprubuje , chodzi o at mege 32 wiec to też nie działa ... a jak wysyłam cały czas ze sterownika "input dana" a na pilocie ( na urządzeniu sterującym ) print dana to sie wiesza po pierwszym bajcie na kompie w terminalu urządzenie nadrzędne ładnie nadaje dane a urządzenie podrzędnie ładnie pobiera je z terminala , ale razem nie gadają
Możesz zamieścić ten fragment kodu, który działa z Timerem1? I dlaczego stosujesz tryb Timer4 Compare Match A? Timera1 w 128 używam do PWM-u. [syntax=basic4gl] 'Sprawdza Timer2 $regfile = "m1281def.dat" $hwstack = 500 'odkładają się wszystkie adresy powrotne skoków wewnętrznych, przerwań i tych wywołanych przez GOSUBodkładają się wszystkie adresy powrotne...
Niestety ja tu nic nie poradzę bo nie bawiłem sie w bascomie w capture. 1) Sygnał do licznika może pochodzić z nóżki albo z wewnętrznego komparatora. Więc trzeba jakoś wybrać nóżkę i ustawić ja na input. 2) Najpierw skonfiguruj swój timer tak jak niżej, bo to musi być COUNTER a nie TIMER: Config Timer1 = Counter , Edge = Falling , Capture Edge = Falling...
Witam Czy da się w 89C2051 uzyskać coś takiego: potrzebuję zliczać impulsy z dwóch wejść i do tego zliczać czas trwania impulsu z trzeciego wejścia, a poza tym wszystko wyświetlać co jakiś czas (powiedzmy co 0,5s) Można jeden timer użyć jako timer wewnętrzny (wyświetlanie co jakiś czas), a drugi jako timer bramkowany zewnętrznie (do liczenia czasu trwania...
Nie mogę uruchomić przerwań w tym procesorze. Przerwania od timer0 nie dzialają ani w symulatorze Bascom AVR, ani po zaprogramowaniu proca. Poniżej kod programu. $regfile = "8515def.dat" $crystal = 8000000 Dim Count As Byte , A As Byte , X As Byte , Z As Byte Config Pinb.0 = Output Config Pinb.6 = Output Config Pinb.7 = Output Config Pinc.0...
Witam. Borykam się z problemem przerwania INT1 w procesorze Atmega88p. Otóż przerwanie raz działa poprawnie , wykrywa odpowiednie zbocze , a innym razem załącza się praktycznie losowo . Napisałem specjalnie prosty programik aby zobrazować problem . Program jest pisany w bascomie jednak ze sporą ilością wstawek z assemblera . (Na czystym bascomie zachowuje...
Fusebit A997 ustawiony na oscylator wewnętrzny 8Mhz , 0100 $regfile = "m8def.dat" ' DYREKTYWY DLA KOMPILATORA $crystal = 8000000 'OSCYLATOR 8MHZ Config Lcd = 16 * 2 'KONFIGURACJA TYPU WYSWIETLACZA Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.6 , E = Portd.1 , Rs = Portd.0 'LCD Config Clock = Soft 'KONFIGURACJA...
dlaczego piszesz, ze masz przycisk podlaczony do zasilania (ja pod slowem zasilania do plusa) ? Juz sie zmartwilem. Tu masz poprawiony kod: $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...
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...
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ą...
$regfile = "m8def.dat" $crystal = 1000000 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.2 = Input Portb.2 = 1 Config Rc5 = Pinb.2 Dim A As String * 2 'Deklaracja umożliwiająca działanie komendy GETRC5...
W przerwaniu $regfile = "m8def.dat" $crystal = 1000000 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 Cursor Off Config Int0 = Low Level Config Rc5 = Pind.2 On Int0 Pobr_rc5 Dim Address As Byte Dim Address1 As Byte Dim Command As Byte Dim Command1 As Byte...
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...
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...
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...
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...
Mam taki oto problem. Stworzyłem programowy UART, ale nie wiem jak sprawdzić czy dostałem jakiś znak. Przerwania i rejestry odpadają jak wiadomo, IsCharWaiting mimo, że w pomocy ma w nawiasie możliwość podania kanału to gdy użyję np. IsCharWaiting(#2) to dostaję błąd nr 328, czyli że funkcja nie jest dostępna dla software'owego uartu. Jakie jest zatem...
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...
łatwiej się już chyba nie da. Sorki, ale ja bym raczej powiedział, że: "JUŻ GORZEJ SIĘ NIE DA :(" Co to za rozwiązanie gdzie w środku siedzi jeszcze obrzydliwy Wait !!! brrr ale żeby nie być gołosłownym, który tylko krytykuje.... Ok, panowie - widzę, że wasze zmagania spełzają na niczym, pokażę wam więc jak się powinno podchodzić do programowania....
Próbowałem ustawić wyzwalanie zboczem FALLING instrukcjami Bascoma, oraz wprost w rejestrach. Nie dawało to nic. Nie wiem, czy dalej wyzwalało się poziomem, czy przyczyna była inna. Poniżej fragmenty programu, które według mnie są istotne. Może ma tu jakieś znaczenie fakt, że pin INT1 jest w trakcie przerwania zmieniany na wyjście i z powrotem na wejście....
Mam jeszcze 2 pytanie związane z Bascomem. Zrobiłem program przykładowy przedstawiony poniżej. Dim Nr As Byte Dim Nr2 As Byte Dim Koniec As Bit Skocz: Koniec = 0 Do Input "Podaj nr" , Nr If Nr > 0 Then If Nr < 20 Then Koniec = 1 End If End If Loop Until Koniec = 1 Do Print "pętla 2" Input "Podaj nr 2" , Nr2 If...
A dlaczego nie odbierasz w przerwaniu? Użyj bufora np tak: Config Serialin = Buffered , Size = 50 , Bytematch = 13 Oczywiście Bytematch musisz sobie dobrać wg. siebie. Potem w przerwaniu ustawiasz sobie jakąś flagę sygnalizującą że coś już czeka w buforze , np tak: Serial0charmatch: Rs_flaga = 1 Return a potem w pętli głównej najzwyczajniej odbierz...
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...
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...
Dalej nie Stop Ac, ale chyba miałeś na myśli Config ACI = Off. Według pomocy Bascoma, to polecenie wyłącza komparator w uP. Ustawiłeś nowym procesorom BODLEVEL na 2.7V (czy jakoś tak) i BDOEN = enable? Nie. Spróbuję ustawić. Disable INT0 w przerwaniu nic złego nie zrobi. W dodatku jeszcze to Disable INT0 wewnątrz samego przerwania INT0 (w Bascomie...
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...
bez oscylacji raczej by nic nie wyświetlał ;) raczej częstotliwość, w sumie lepiej zawsze umieszczać w programie, dobre przyzwyczajenie PS a zegar jak zrobionyw bascomie?? nie trzeba ręcznie odblokować przerwań?? widziałem to w innych programach, niestety nie używam bascoma 'Real-Time Clock Example 'Wright Hobbies, LLC 'eddy(at)wrighthobbies.com Enable...
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 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...
Dosyć odważnie sobie poczynasz na mikrokontrolerze mającym 2kB Flash i 128B SRAM :D ale do odważnych świat należy. Odchudziłem Ci trochę kodzik. Obsługa przerwania timera została stuningowana moim programem NoSave Tool. Teraz mikrokontroler nie odkłada na stos większości rejestrów a tylko te potrzebne - w tym przypadku tylko jeden :D Przekłada się to...
chodzi o to że mam coś takiego narazie : $regfile = M161def.dat 'deklaracja kwarca i uP $crystal = 2457600 Config Portc = Output 'deklaracje wejść i wyjść Config Pinc.6 = Input Config Porta = Input Config Pinb.0 = Input Config Pinb.1 = Input P_gora Alias Pinb.0 P_dol Alias Pinb.1 Kran1 Alias Pina.6 Kran2 Alias Pina.5 Ped1 Alias Pina.4 Ped2 Alias Pina.3...
Tu poniżej jest nieźle namieszane '*********************** Obsługa bufora UART Serial0charmatch: Flaga_rs = 1 Return Odbiór bufora i przepisanie do zmiennej Tx powinien zostać wykonany w całości w tym przerwaniu, a nie ustawiana flaga że coś jest w buforze a potem dopiero za jakiś bliżej nieokreślony czas odbiór. A co będzie jeśli zostanie zasygnalizowana...
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...
Witam Forumowiczów, Mam problem z ogarnięciem tematu wywoływania przerwań. Nie jest to problem jak je wywołać ale jak je okiełznać ;-) Wygląda to tak: Jest układ na Mega644PA-AU. Po I2C współpracuje z zegarkiem PCF8583, oprócz tego linia przerwania z PCF podłączona jest do portu D6 procka. Klawiatura zrealizowana jest na przetworniku ADC (port A0) i...
bascom input input bascom bascom przerwać przerwać
ogolny techniczny sterowniki kamerki microsoft felgi malowanie
samsung wf70f5e0w2w blokada konta google
Niedziałająca płyta grzewcza - diagnoza i naprawa Błąd P1336 w Peugeot 407 2.0 16V - przyczyny i diagnostyka