Ten kod musisz okrzesać :D Czym to programujesz? Pytam bo umieściłeś dyrektywy dla programatora. Może i nie byłoby w tym nic dziwnego, ale w kodzie masz napisane 8MHz a tymi dyrektywami mikrokontroler zostałby ustawiony na fabryczne 1MHz... Inna sprawa to ten pomiar na ADC i zapisywanie jego wyniku po obliczeniach do PWM. Nie wszystkie tryby PWM mają...
To jest tak: Config Int0 = P3.2 ' Ustawienie przerwania zewnętrznego na pin P3.2 Reset Tcon.0 ' Przerwanie wywoła stan niski Set Tcon.0 ' Przerwanie wywola opadające zbocze (z H do L) To samo z Int1 To tyle pozdrowienia.
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Z tego co widzę to źle ustawiasz stan niski na pinach. Dla CLK_PIN najlepiej zrobić to na XOR bitwise ^= . Swoją drogą dobrze jest zajrzeć jednak do dokumentacji scalaka. Wyraźnie jest pokazane, że najpierw musi być ustalony stan na DQ i dopiero narastające zbocze CLK (fig. 9b). Dodatkowo zapominasz o bicie wskazującym który stack wybierasz. Na sam...
Najpierw dajesz Config INT0=Falling Wprowadzasz zmienną opisującą wybrane zbocze wyzwalające przerwanie (Edge_) i w procedurze obsługi tego przerwania: If Edge_ =0 Then Start Timer1 Config INT0=Rising Else Stop Timer1 Config INT0=Falling End If Niektóre AVR'y umożliwiają konfigurację typu Config INT0= Change Wtedy przerwanie wywoływane będzie po stwierdzeniu...
...Jakie jest zatem rozwiązanie tego problemu (jeśli jest)? Bascomowy UART programowy działa jedynie wtedy , kiedy wywołamy funkcję z nim współpracującą. W pozostałych przypadkach ( kiedy działają funkcje/procedury nie związane z programowym UART-em ) , nadchodzące dane są "niewidoczne" dla procka :( Np. jeśli masz w kodzie Wait 1 , a w czasie działania...
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...
np tak: (to tylko pogladowo bo to nie jest program) a-enable b-data c-clk dana-dana do wyslania c=0 b=0 'obie linie w stnaie spoczynku maja 0 a=1 'zaluzmy ze wysoki stan uaktywnia odbiornik danych dana=??? for x=0 to 7 b=dana.x 'wystaw bit c=1 'zaluzmy ze narastajace zbocze wpisuje bit c=0 next x a=0 'jesli na tym jednym bajcie chcemy skonczyc transfer,...
Witam. Procek tak się zachowuje bo nie określiłeś czy przerwanie ma być generowane przez zbocze opadające, rosnące czy przez stan niski na końcówce INT. Domyślnie wyzwalane jest stanem niskim więc wykonuje się raz za razem. Instrukcja Config INTx. Przeznaczenie: Konfiguruje sposób wyzwalania przerwania INTx. Składnia: CONFIG INTx = LOW LEVEL | RISING...
Przepraszam ale w pierwszej wypowiedzi popełniłem błąd logiczny - oba przerwania powinny być ustawione na te same zbocze a nie różne. Dlaczego, bo tak jak napisałem wcześniej nie będzie można określić kierunku zmian, zawsze bedzie ta sama kolejność wywoływania przerwań. Obojętnie czy kręcimy w lewo czy w prawo. np. ChA narastanie 0->1 a ChB opadanie...
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 =...
Język nie jest ważny. Polega to na odpowiednim ustawieniu sygnałów na wejściach LCD czyli sterowania rejestru Port. Jak wrócę z pracy to wstawię tu kod napisany w C dla zwykłego LCD ( z lekkim tłumaczeniem). Może uda się to przerobić na Bascom. Wtedy uzyska się dostęp do czasów. Do tego czasu spróbuj wyssać procedurę inicjacji z noty katalogowej. P.S....
Witam, Zależy mi tylko na tym, żeby Arduino zliczał impulsy z kontraktrona do 5 - 1 impuls- świeci się dioda led 1 - 2 impuls zapala się dioda led 2 - 3 impuls zapala się dioda led 3 - 4 impuls zapala się dioda led 4 - 5 impuls zapala się dioda led 5 i dodatkowo daje sygnał ciągły HIGH na pin SILOWNIKA przez cały 5 po 6 impulsie reset i znowu: - 1...
On Urxc Rs_rx_ok On Utxc Rs_tx_ok '---------------------------------------... Dim Rs_tx_bufor(7) As Byte Dim Rs_tx_licznik As Byte Dim Rs_tx_ograniczenie As Byte Ddrd = &B00000010 'TXD = wyjscie, reszta wejscia Portd = &B00000010 'TXD = stan wysoki, reszta HI-Z Ddrb = &B00001000 'PB3 = wyjscie,...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na http://www.elektroda.pl/rtvforum/topic20... ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem "ruszył"...
Że jak? Do Loop Load Timer1 , 5 Return Czy to co powyżej (do,loop) to przemyślane działanie czy jakaś opcja debug'ujaca? A - i jak wywnioskowałeś, że nie działa przerwanie?
Witam a może coś takiego rozwiąże problem: dim flaga as bit dim a as byte do if P1.0 = 0 and flaga = 0 then a=a+1 'wartośc zwiekszana tylko podczas opadającego zbocza flaga = 1 end if if P1.0 = 1 then flaga = 0 end if loop Przy wykorzystaniu wejśc P1.0 i P1.1 w układach typu 89C2051, 89C4051 itp. należy pamiętac o podciągnięciu tych wejśc do plusa zasilania...
hmmm takie kombinacje.... przacierz można rejestr odpowiadający za przerwanie ustawaiać w czasie wykonywania programu... raz ustawiasz go na zbocze narastające, a potem w obsłudze przerwania na zbocze opadające.
Uwaga! Przedstawione przez autora urządzenie nie spełnia wymogów standardu I²C (IIC) co zostało wyjaśnione w dalszej części dyskusji w szczególności od tego postu: http://www.elektroda.pl/rtvforum/viewtop... Dlatego też decyzją grona moderatorów zmieniono tytuł na "Izolowany galwanicznie interfejs jednokierunkowy open-drain...
Możesz użyć Timer0, ale przy zboczu rosnącym, to możesz liczyć tylko zwalnianie przycisku podłączonego do masy a nie jego naciśnięcia. Jeden warunek : Timer0 musi mieć wejście podpięte przez rezystor do zasilania układu, aby jakiekolwiek zbocze rosnące tam wystąpiło.
Sygnał przychodzący podłączasz do dwóch wejść: INT0 i ICP1. Rejestry MCUCR i GICR konfigurujesz tak, żeby na zbocze narastające na wejściu INT0 timer startował, a na opadające na INT1 zatrzymywał się...
Nie wiem jak wygląda Twój program, ale jakimś rozwiązaniem może być też "wyłapywanie narastającego zbocza". Czyli robisz to tak - zapamiętujesz stan przycisku, potem badasz go ponownie, jeśłi stary stan jest niski a nowy jest wysoki to wywołujesz dźwięk na chwile. Wtedy wcisnięcie na stałe nie spowoduje tego że będzie ciągły dźwięk, musi dopiero nastąpić...
tak :D set ISC01 , procesor będzie reagował na zbocze opadające :) ale w 2051 trzeba rc zastosować...
Proszę postępuj zgodnie ze schematem użytkowym, który załączyłem (post #4 21 Lip 2015 21:39). Tam jest przedstawione gotowe rozwiazanie. Zacisk 21 podłączasz do masy, zaś zacisk 20 do GPIO. Stanem aktywnym jest zwarcie pinu GPIO do masy. Następuje to w momencie pojawienia się impulsu (dokładnie w momencie kiedy na ORNO mrugnie dioda). Dalsza procedura...
testowałem od 5 do 10 khz jakoś się sprawia . A to jednak częstotliwość ma być zmienna? Za wcześnie się chyba wychylam problem zaczyna się jak przesunie się faza przed zbocze fali rozpoczynającej pomiar . Gdy się przesunie przed zbocze to powinno przewinąć wynik do 0 i liczyć od nowa. A u Ciebie co się dzieje?
Po resecie TCON ma wartość 0x00 czyli sygnał niski generuje przerwanie, a w tym przypadku to powinno być zbocze opadające. Dodaj linię set TCON.0 przy konfiguracji przerwań.
A to przepraszam jeszcze dużo rzeczy nie wiem :) Czyli poczekać na zbocze narastające, wtedy w przerwaniu odpalić licznik iii no właśnie jak to zrobić żeby nie czekać w przerwaniu na stan niski żeby zatrzymać timer ??
pixel7 ale bzdura. Jak chcesz zareagować natychmiast to właśnie w przerwaniu a tam ustawiasz czy zbocze wyzwalające ma być narastające czy opadające. No i jak to ma być przycisk to trzeba koniecznie odfiltrować drganie styków.
...W koncu juz sam fakt skoku do przerwania oznacz ze na pinied.2 nastapilo zbocze opadajace. Zgadza się , tylko czy jesteś pewien , że układ reagujący na błysk generuje pojedyncze zbocze , czy może serię(kilka) takich zboczy :?: Bo jeśli zostanie wygenerowane > 1 takie zbocze , to w czasie przerwania , flaga INTF1 zostaje ponownie ustawiona i po zakończeniu...
czy da sie w bascomie tak zaprogramowac przerwania zawnetrzne (ATmega8) zeby w trakcie procedury wykonywania przerwania zalozmy INT0 przy pojawieniu sie sygnalu przerwania INT1 zapamietalo to i wykonalo procedure drugiego przerwania po zakonczeniu pierwszej? przerwania reaguja na zbocze sygnalu nie na poziom
O ile mnie pamięć nie myli, to SPI ma cztery kabelki. To narastające i opadające zbocze przypomina synchroniczną transmisję szeregową, dlatego głosuję na coś podobnego do I2C, albo właśnie samo I2C. Pozdrawiam.
Zmień wywoływanie podprogramu Int0 na opadające zbocze a nie na niski poziom(domyślne) i wszystko będzie dobrze. A swoją drogą to co to za mikrokontroler bo nie jesteśmy jasnowidzami?
Na liniach wejściowych masz dane, zapis wyzwalasz przednim zboczem czyli na CP musisz wystawić impuls dodatni lub ujemny - wszystko jedno, bo potrzebne jest jedno zbocze narastające. W przypadu zatrzasków typu Latch (373, 573) dane zatrzaskiwane są poziomem na wejściu taktującym. http://obrazki.elektroda.net/21_11940172...
Masz w kodzie taką linię ... Reset Tcon.0 'wyzwalanie narastającym zboczem ... i nie podoba mi się komentarz ;) Powinien brzmieć wyzwalanie niskim poziomem . Więc po pierwsze , ustaw INT0 na zbocze opadające (Set Tcon.0) , a po wtóre , Twój proc nie ma możliwości wyzwalania przerwań zewnętrznych zboczem narastającym :( Piotrek
Nie piszesz czy to ma być liczenie w jednostce czasu ani jakie zbocze Cię interesuje (opadające/narastające)... Jeśli to tylko zwykłe liczenie impulsów to rozwiązanie jest wprost banalne. Najpierw określ jakie zbocze ma liczyć. Odczytujesz stan portu i czekasz na jego zmianę jeśli się zmieni wtedy "INCR coś tam", czekasz na powrót do zbocza i wracasz...
Mam program do zegarka z alarmem...podczas kompilacji w programie Bascom AVR wyskakuje mi bład w tej lini Set Tcon.2 'opadające zbocze int1 dla obslugi timera Enable Interrupts 'odblokowanie przerwań On Int1 Sekunda 'skok do etykiety sekunda gdy wystąpi int1 a brzmi on tak Error:41 Line: 49 Variable can not be used with SET [TCON] Niech ktoś mi pomorze!!!!
Dokładnie jak pisze (at)tmf, programowo spokojnie 6x 5khz ogarniesz. Na attiny13 robiłem licznik programowy, który bez zająknięcia przy zegarze 9,6MHz zliczał mi ponad 40khz tyle, że robiłem inną metodą niż z XOR, bo badałem konkretne zbocze (przy XOR chyba każde jest łapane - nie wnikałem nigdy w ten algorytm to nie jestem pewien).
Ja już chyba na to odpisywałem, albo deja vu:) Nie Timer nie liczy stanów a zbocza... tak można na takie i takie zbocze liczyć... Ty zapewne chesz liczyć na zbocze opadające...
Na pewno nie wystarczy zmienić INT2 na ICP1. Czytałem jakiegoś manuala i zrozumiałem to tak. ICP służy do zapisu sygnałów wchodzących na procesor oraz odmierza ich czas trwania bądź momentu w którym wystąpiły. Działa to tak, że Timer1 (16 bitowy) liczy sobie z taką prędkością jaką zadaje mu preskaler. W chwili gdy na wejściu ICP pojawia się zbocze sygnału...
Wszystko zależy od tego co jest źródłem impulsów. Jeżeli przycisk, to może to być efekt odbijania sie styków. Jeżeli to sygnał z innego urządzenia to może jego wydajność prądowa jest mała i zbocze zbyt wolno opada. A jeżeli sygnał jest dostarczany przez dodatkową rezystancję to może podciągający rezystor jest za mały.
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 :...
Jdno pytanie czy ponizsza konfiguracja bedzie prawidłowa : Chodzi o to aby licznik zliczał impulsy wewnętrzne z kwarcu przez czas jaki na int0 bedzie stan wysoki. w momencie pojawiania sie zbocza opadającego aby program przchodził do obsługi przerwania : Fragmenty w bascom : config timer0 = timer , gate = external , mode =1 set Tcon.0 - reakcja na zbocze...
Lj = Li / 250 250 to ilość impulsów na 1 l. według producenta Dodano po 5 Cały problem w tym że nie wiem jaki uklad wsadził do tego przepływomierza i co ma na myśli 250imp/l . Próbuje na różne sposoby poprawnie zliczać litry . Brak jakiejkolwiek noty tego przepływomierza z innymi przepływ. niema problemu bo sygnał prostokątny i jak pisze 689 imp/l to...
2. Odpowiedź na moje 2 pytanie. 3,4. nie chodziło mi o znak w warunku if, a o sprawdzenie stanu klawisza po czasie 3s, który tu jest spełniony (co przeoczyłem) w warunku wyjścia z pętli w korelacji z Licz. 5. przerwanie zostanie wykonane po zwolnieniu klawisza. Moje ostatnie pytanie dotyczyło pracy układu, czy w czasie wykonywania przerwania INT1 kolejne...
Znaczy chce odczytać 1 paczkę 128 impulsów "0" ale jak się da to po kilku ms następną która jest taka sama. Częstotliwość różna ale cały okres to ok 4,4us ( "0" 400ns "1" 4000ns). Zrobiłem puste przerwanie tylko X++ i też mi zgubił impulsy x=218 do 223 średnio. Ale opanowałem to chwilowo i przepiąłem się na INT0 ustawiłem na opadające zbocze , łapie...
Witam. Faktycznie obsługa LCD jest bardzo prosta. 1. zainicjować LCD ( wybór trybu 4 lub 8 bit ) 2. ustawic dane na pinach D4 do D7 lub D0 do D7 3.ustawic zbocze opadajace na E Zanki wysylamy przy RS=1 Komendy wysylamy przy RS=0 W trybie 4 bitowym. Bajt wysylamy na dwa razy 1. starsza czesc bajtu i zbocze opadajace na E 2. mlodsza czesc bajtu i zbocze...
Chyba w końcu to zrozumiałem... poniżej przykładowy kod zmieniający kilka przykładowych poziomów jasności świecenia - DZIAŁA ! ;-) $regfile = "m16def.dat" $crystal = 16000000 Config Pind.6 = Output Bramka Alias Portd.6 Dim Moc As Byte Dim Wart_timera As Word Config Int0 = Falling 'rising wyzwala zbocze narastające Config Timer1 = Timer , Prescale...
witam mam mały problem napisałem taki program ma byc on na attiny13 :) $regfile = "attiny13.dat" Config Portb.2 = Output Config Int0 = Falling Enable Interrupts Enable Int0 On Int0 Czekaj Set Portb.2 Do Loop End Czekaj: Reset Portb.2 Waitms 5 Set Portb.2 Return Kiedy na wejscie podamy 0 to na wyjsciu ma sie pojawić 0 przez 5ms i po tych 5ms stan wyjscia...
a wlasnie ze jest konfigurowalne i mozna zmienic czy ma reagowac na zbocze opadajace czy narastajace. Wyczytalem wszsytko z dokumentacji...Myslalem ze piszac w bascomie da sie to ominac...ale nie ma tego zlego co by na dobre nie wyszlo. dziekuje za odpowiedz
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...
bascom zbocze bascom zbocze opadać zbocze bascom narastające
93c66 odczyt suszarka napełniony carpower power 1000d
odzyskiwanie danych darmowy program odzyskiwanie danych darmowysd
Bosch Tassimo TAS 140x nie wyłącza się - przyczyny i rozwiązania Bosch Tassimo TAS 140x - Ciągłe wylewanie wody