Najdłużej tam pewnie trwa oczekiwanie na wynik pomiaru ADC który jest dodatkowo podwójny. Bascom robi dwa odczyty jeden za drugim. Można to wyłączyć, ale pomyśl o samym oczekiwaniu na konwersję. Gdyby to było poza przerwaniem to inne przerwanie spokojnie mogłoby to oczekiwanie przerwać tak jak można przerwać każde Waitms. Spróbowałbym w przerwaniu ustawić...
Witam. ........... nie wiem jak zrobić aby te wyzwalanie było tylko od narastającego zbocza. Ściągnij pin 'Start' (PIND.5) rezystorem 10k do GND i odwróc jego logikę na przykład: If Pind.5 = 1 And B = 0 Then Druga sytuacja nie wiem dlaczego ale silnik mi przerywa tak co około sekundę gdy PWM jest włączony. Prawdopodobnie w tym czasie następuje zmiana...
Ta wstawka asm nie jest prawidłowo napisana, działa tylko dlatego, że kompilator nie wykorzystał jak dotychczas rejestrów R14 i R15. Jeśli program rozrośnie się na tyle, że kompilator będzie wykorzystywał te rejestry to program przestanie działać. Jak wspomniałeś poza eterem, masz możliwość skorzystania z ATmega32 i podpięcia wszystkich sygnałów do...
Przedstawię Ci kolego przykład zastosowania Pulsein żebyś miał jaśniej. Myślę że będzie "rzeczowiej". To przykład dla dekodowania transmisji pilotów podczerwieni. Sygnał podłaczony jest do zewnetrznego przerwania INTx i w momencie zmiany na pinie program skacze do tej procedury. Mierzy impuls i poddaje rozwadze jego długość. [syntax=basic4gl]Int_1isr:...
Użyłeś MOC3041. Takie nie mogą być bo mają wyzwalanie z zerze napięcia sieci.
Oczywiście, że mają wyzwalanie zboczem. Opadającym, narastającym i dowolnym. Tylko nie pamiętam czy Bascom pozwala przez swoje funkcje skonfigurować wyzwalanie zboczem. Ale wystarczy odwołać się bezpośrednio do rejestru MCUCR.
ja tez mialem ten sam problem. porostu jest to chyba jakis blad samego procka bo program pisalem w asmie i nie moglem za cholere doprowadzic do wyszwalania zboczem. jak ustawilem wyzwalnie zboczem to wlasnie reagowal tak samo jak u ciebie w koncu zmienilem troche program i zrobilem wyzwalanie poziomem.
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...
Zdecyduj się o co Ci chodzi: Power down, Pull-down, Wyzwalanie przerwania zboczem narastającym/stanem wysokim, Obsługę watchdog, Bo nie wiem o co w końcu pytasz...
Jeśli masz piki w momencie przejścia przez zero to nie ma żadnej regulacji bo triak/tyrystor jak dostanie taki impuls to przewodzi do końca połówki sinusoidy. Musisz wysyłać impulsy wyzwalanie opóźnione względem przejścia przez zero.
programowe rozwiazanie nie bardzo mnie zadowala. Moze jednak mozna podlaczyc do INT4 ? Tylko od czego to jest uzaleznione ? Jest taki projekt ktory ma wlasciwie wszystko co ja bym chcial miec tylko niestety kosztuje 200$ i z tego co sie doczytalem to wlasnie jest wyzwalanie przez INT4. http://www.avrsprint.com/ProductBriefs/A...
No dobra ale to nie tylko przełączniki ale adresowanie pamięci RAM, wprowadzanie danych poprzez klawisze sequencera do pamięci, wyzwalanie generatorów. Nie wiadomo co określa "jest posputy" - jak jest uszkodzone wprowadzanie danych do oryginalnego procesora to AVR nie naprawi TR808.
Witam wiem schemat nie jest najlepiej dopracowany ale już działa poprawnie. Nogi "niczym" nie zakończone stawały nie antenami , np przyciski. Dodałem po 100nF na przyciski i problem ustąpił. Wyzwalanie przerwania tez było podciągnięte pod styk przekaznika i było w powietrzu 100nF do masy i jest OK. Dziękuje za sugestie zamykam
Tak miałeś rację, zmiana na wyzwalanie zboczem pomogła. Dziś dorobiłem też termometr na LM56, moim zdaniem lepszy od DS-a. Zastanawiam się jeszcze nad miernikiem ciśnienia na SCP1000 bo mam kilka wolnych pinów na procku. Jutro dam znać co wyszło.
...nóżkę int0 pcf8583 (7) trzeba podłączyć do PD.2 w uC przez układ RC, ponieważ pcf8583 daje przebieg o częstotliwości 1Hz, wypełnienie 50%... a nie chcemy, żeby przerwanie było wywoływane co chwile przez te pół sekundy... :P W takim przypadku , ustawiamy wyzwalanie zewnętrznego przerwania na jedno ze zboczy (opadające lub narastające) , a układem...
Moim zdaniem przyczyna leży w obsłudze przerwania. Przerwanie INT0 jest uruchamiane opadającym zboczem (Falling) CHA zmiana sie 1 -> 0. Dodatkowo w przerwaniu są instrukcje sprawdzające czy kanały są w stanie 00. Stan 11 jest pomijany. By móc rejestrować zmiany 0 -> 1 można ustawić przerwanie INT1 na wyzwalanie zboczem narastającym (Rising) i sprawdzać...
czesc Jaki procesor programujesz? AVR-y nie maja resestru tcon, w 2313 dla int1 wyzwalanie ustawaisz w MCUCR a dokladnie bity ISC11 i ISC10. Ale jak piszesz w bascomie to wystarczy napisac config int1 rising/faling rising - narastajace, faling opadajace, stan niski low lewel zreszta zajzyj do helpa, bo moglem sie w pisowni walnac A jak chcesz recznie...
ustawiasz licznik tak by generował przerwanie co 50ms w tym przerwaniu sprawdzasz swoje sygnały (przyjmijmy ze wyzwalanie jest zerem) w przerwaniu sprawdzasz czy sygnał jest = 0 jeśli tak ustawiasz sobie jakaś zmienna bitową flagę (znak ze sygnał jest). w następnym przerwaniu (flaga ustawiona) sprawdzasz znów sygnał jeśli jest 0 np włącz silnik. dodatkowym...
Szkoda że na '51, bo na AVR było by łatwiej. Można to zrobić tak: Procki '51 mają wejścia zewnętrznego przerwania wyzwalanego stanem niskim, lub zboczem opadającym. Ciebie interesuje to drugie (bo zboczemn narastającym się nie da jak w AVR). Nie wiem jak wygląda konfiguracja przerwań w BASCOMie, zobacz w dokumentacji, ale podejrzewam że coś w rodzaju:...
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...
Doszedłem do takiego stanu. '****KONFIGURACJA PROCESORA**** $crystal = 4000000 $regfile "attiny2313.dat" $lib "mcsbyte.lbx" '****KONFIGURACJA PORTÓW**** Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111000 Portd = &B1111111 Config Rc5 = Pind.2 '****KONFIGURACJA ZMIENNYCH**** Dim I As Byte Declare Sub Wprawo Declare...
Ten drugi pomysł jest moim zdaniem lepszy. Do tego możesz użyć końcówki przerwania INT - ma konfigurację zbocza, którym jest wyzwalane przerwanie.
Witam. Napisałem kawałek kodu do multipleksacji wyświetlaczy LED. Zrobiłem układ z wyświetlaczem LED TOF - 5462. Wspólna anoda 4 cyfry + 2 kropki pośrodku. Jestem początkującym programistą C dla AVR i sam nie mogę rozgryźć problemu. Wyświetlacz jest podłączony do atmegi następująco: PORTB to wszystkie 8 segmentów wyświetlacza (A do G i DP). PORTD 0b11110000...
Witam.Osobiście nie piszę w bascomie ale przerwanie (przerwania) PCINT wyzwalane są zmianą stanu na pinie a ty natomiast próbujesz konfigurować aby wyzwalane było niskim poziomem.
Int0 ma najwyższy więc trop z priorytetem nie był dobry. Na próbę ustaw sztywno czas i wywal wszystkie wait. Może na czas oczekiwania w wait nie działają przerwania? I sprawdź czy wyzwala z przycisku.
No ale może wystarczy wykorzystać tylko tą część od wyzwalania generacji przez uniwibrator??
Oba są tak samo zaawansowane. W syntetyzowanej trzeba puścić próbkę sinusa i go nieco obrobić: zmiana częstotliwości, ADSR, generator szumu. Potem wszystko zmiksować i puścić na DAC. W odtwarzanej trzeba odpowiednio wyzwalać, pobierać z dość ogromnej pamięci ROM próbki, miksować i puszczać na DAC. Jest jeszcze jeden sposób: AY-3-8912, YM-2149 i inne...
Tak. Tylko mniej świadomość że procek będzie odrywany od pracy wieloma nieprzydatnymi impulsami. Ewentualnie po pierwszym impulsie na INT, wyłącz przerwania na czas drgań. Jak teraz masz podłączony kontrakton ? INT podciągnięty pod +5V ? Jak INT wyzwalasz ? W docelowym projekcie koniecznie czujnik kontraktonowy zamień na jakiś halotron albo transoptor...
Jak masz klawiaturę podłączoną do portu C to nie będzie działać. Powodem jest standardowo uruchomiony J-TAG. Spróbuj z inną końcówką wyzwalającą przerwanie.
Przerwanie wyzwalasz poziomem czy zboczem? Kolejna sprawa. Gdzieś czytałem, że AVR po wyjściu z przerwania wykonuje JEDNĄ INSTRUKCJĘ i przechodzi znów do obsługi przerwania (jeśli jest nowe). Jeśli chcesz blokować wskoczenie do nowego przerwania , to musisz w OBSŁUDZE POPRZEDNIEGO PRZERWANIA na samym końcu sprawdzać bit zgłoszenia ponownego przerwania....
jak chcesz takie duze czestotliwości mieżyć to musisz użyć timera żeby liczył zewnętrzne impulsy, wtedy drógim timerem wyzwalasz przerwanie co określony czas (im dłuższy tym lepszy bo pomiar dokładniejszy) liczysz ile było ilmpusów z zewnątrz w okreslonym czasie. wydaje mi się że tą metodą dało by sie mieżyć nawet do 100Mhz ale jest jedno zalożenie...
olo_3 -> to jest cały kod? ten który tu pokazałeś????? jeśli tak - to po pierwsze - gdzie masz pętlę główną po części inicjalizacyjnej programu ??? DO ... LOOP - chyba że ślepy jestem czy jak? (jeśli rzeczywiście jej nie masz to nie dziw się, że twój program wariuje bo po z tego co widać po inicjalizacji odrazu program leci do obsługi przrwania i się...
Uzyj kolego bramek TTL oraz liczników a procka do odczytu ich stanu i ew. wyzwalania nie będziesz mieć takich dylematów.
Wielkie dzięki za szybką odpowiedź. Zrozumiałem już ideę tych przerwań. Mam jedno pytanie jeszcze wg. tego co zrozumiałem i co napisałeś jako przykład. Programik się kompiluje ale przerwanie nie odpala się (na ten port wchodzi mi sygnał 1Hz z zegarka PCF8583). Nie powinienem jeszcze skonfigurować jakie jest wyzwalanie? Czy zboczem czy stanem czy zmianą?
Na szczęsci podczas projektowania całego układu wyjście nIRQ odbiornika podłączyłem do wejścia INT1 procesora. Ustawiłem aby przerwanie było wyzwalana przy opadającym zboczu ale dalej nic sie nie dzieje.
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
Podłącz diodę optotriaka pod wyjście OCx procesora, dzięki temu impuls wyzwalający będziesz mógł generować sprzętowo za pomocą timera.
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...
Nie jestem pewien, ale wybudzanie da się chyba tylko stanem nie zboczem... doczytaj w dokumetacji:> Przed uśpieniem(procek wykonuje kod) , INT0 może być ustawione na falling , ale przed wykonaniem instrukcji SLEEP , należy zmienić sposób wyzwalania na LOW LEVEL i ... włączyć przerwania , jeśli usypiamy proca w przerwaniu. Poza tym , bit ISC01 może...
Jeżeli ustawił być INT1 na zbocze to ciągły stan niski nie zamulał by Ci programu. Jeszcze raz dla pewności: masz ustawić INT1 na zbocze, a nie implementować w programie programową obsługę reakcji na zbocze podczas gdy INT1 będzie ustawione na wyzwalanie poziomem.. Bo tak do tej pory miałeś.
Ciekawe jest to widać w twoim profilu (Pomógł: 79927) :P ale do rzeczy. Według mnie coś takiego można zrealizować w następujący sposób: - konfigurujesz przerwanie zewnętrzne żeby było wyzwalane przerwanie zboczem opadającym, rosnącym etc. - w tym przerwaniu uruchamiasz timer który zlicza sobie impulsy - jeżeli zliczy określoną ilość impulsów to wykonujesz...
A myślisz że przy operacji kablami nie powodujesz drgań styków i setek zbocz wyzwalających int? Chyba o tym nie czytałeś zbyt dokładnie...
Zaproponowane zmiany nic nie zmieniły. Jak była obsługa 12bitów to procesor i tak rozpoznawał jaka to ramka za pomocą długości bitu startowego i dalej już "nie obsługiwał" części odpowiedzialnej za tą ramkę 12bit. Sprawdziłem i odbiera normalnie zawsze pierwszą ramkę, załączam ekrany oscyloskopu, drugi kanał jest wyzwalany flagą po odebranej ramce...
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...
1. Powinienes za transoptorem (przed INT0) wbudować przerzutnik schmitta. 2. Jak masz wyzwalane przerwanie? Nie znam BASCOMa, powinno być wyzwalane zboczem. 3. To cały Twój program? Tak jakoś trochę mało tej konfiguracji uC... No chyba że robi to BASCOM jakimś sprytnym rozbujnickim sposobem.
witam INT0przerwanie zewnętrzne końcówka INT0 INT1przerwanie zewnętrzne końcówka INT1 TIMER0przerwanie przepełnienia licznika TIMER0 TIMER1przerwanie przepełnienia licznika TIMER1 Gdy używane są przerwania INT0 lub INT1, można określić warunek zgłoszenia tego przerwania. Należy w tym celu użyć instrukcji SET / RESET i ustawić odpowiednie bity w rejestrze...
jak chcesz liczyc impulsy to ustaw timer jako counter z wyzwalaniem wewnetrznym (internal) i impulsy podaj na p3.4 jesli bys chcial korzystac z drugiego programu musisz ustawic przerwanie jako wyszwalane zboczem.
PCINT są wyzwalane tylko zmianą poziomu (Pin Change Interrupt) i nie da się go skonfigurować jako "falling"
Jeżeli sprawdzasz przycisk podłączony do masy, to czemu przerwanie Timer ma być wyzwalane zboczem rosnącym ? Config Timer0 = Counter , Edge = Rising
Dostosuj ten przykład do Twojego programu czyli nie mierz w przerwaniu tylko ustaw flagę by dokonano pomiaru. Możliwa wtedy będzie obsługa innych przerwań itd.. To klasyczny przykład jak nie należy obsługiwać przerwań. Ustawianie flagi nie ma żadnego sensu, bo wtedy nie trzeba przerwania. W przerwaniu jak najbardziej można obsługiwać pomiary ADC. Ale...
Witam, stawiam pierwsze kroki w Bascom-ie, dlatego nie wiem, czy to co piszę ma sens i się sprawdzi. A gdyby timer (odpowiedzialny za regulację częstotliwości) po przepełnieniu wyzwalał swoim przerwaniem podprogram z poleceniem PULSEOUT ? Można w nim zadeklarować czas trwania impulsu a przez to regulować jego wypełnienie. Ma to sens ? Pozdrawiam,
Zrob to na przerwaniach, tylko musisz za kazdym razem zmieniac tryb wyzwalania lub lepiej ustawic na oba jesli sie da (nie pamietam jakie sa opcje w t2313).
Nie chcę cię oceniać, ale chyba nie uważałeś na zajęciach, skoro nie wiesz jak napisać taki programik. Nie potrafisz sprecyzować zadania i niepotrzebnie się unosisz. Najlepiej chciałbyś gotowca. Dalej nie wiem co z tym terminalem i obsługą przez rs232. Co on ma robić? Wyzwalać te pompy? A tak poza tym, naprawdę nie wiesz jak zrobić sterowanie włącz/wyłącz...
Witam Pomiar ADC trwa około 400us ale masz w podprogramie obsługi wyświetlacza dwie instrukcje waitms 20. Podciągnij zasilanie panelu do plusa (przez rezystor) na stałe i poprzez komparatory sprawdzaj moment dotknięcia panelu. wyjście z komparatorów poprzez bramkę AND podaj na dowolny pin a najlepiej niech wyzwala ona przerwanie w którym odczytasz dokładne...
Witam Zawsze staram się sam rozwiązywać problemy jednak tu poległem. Chodzi mi o pomiar czasu między impulsami. W jaki sposób poradzić sobie z Timerami? Który Timer można użyć do tego i z których wejść mogą być wyzwalane? Z góry dziękuję za pomoc.
najpewniejszym sposobem ustalenia wyprowadzeń jest omomierz , w ten sposób na 100% ustalisz wyprowadzenia , najważniejsze to znalezienie punktów wspólnych cewek te łączysz razem i do Uzas , o kolejność pozostałych nie musisz się martwić ponieważ i tak będziesz musiał ustalić to dopiero w czasie pracy układu , chyba że będziesz miał szczęście i za pierwszym...
Gate i Mode w konfiguracji timera nie występuje w bascomie na AVR. Prawdopodobnie może to być sposób wyzwalania/ zliczania timera (wewnętrzne lub zewnętrzne) plus jakieś inne tryby pracy.
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.
Słuchaj możliwe błędy w przerwaniu: 1) nie ustawione jako wejście 2) złe wyzwalanie (w to wlicza się brak podciągania) 3) brak włączonej obsługi przerwań 4) jeszcze raz złe wyzwalanie! 5) źle zrobiony hardware! 6) Nie krzycz na ludzi mających większe pojęcie niż Ty i wytykających Ci oczywiste oczywistości gdzyż jak już to zadziała, będziesz marudził...
Do If Port1 != Pina Then begin Port1 = Pina Zmiana = 1 end endif loop skuteczność psuło Ci opóźnienie czasowe. Wyobraź sobie co się stanie, kiedy stan pinu zmieni się po wykonaniu polecenia Port2=Pina... Pewniejszym sposobem jest skorzystanie z przerwania wyzwalanego zmianą stanu.
Mam problem ze skonstruowaniem czegoś w rodzaju przerzutnika typu T. Założenia jakie musi spełniać to: 1. Wyzwalanie jednym przyciskiem typu NO 2. Dwa wyjścia wyzwalane na przemian 3. Czas wyzwolenia ten sam co czas naciśniętego przycisku. Próbowałem to zrobić na dwóch NE555 lub jednym NE556, ale mi nie wychodzi. Generalnie mi chodzi o to, aby uzyskać...
Cześć, Odgrzewam trochę temat, ale może ktoś jeszcze tego potrzebuje. Kiedyś zrobiłem dokładnie taki sam projekt (Sony a330). Wykorzystałem do tego zestaw uruchomieniowy ZL11AVR (+dioda podczerwieni). Można ustawić czas cyklicznego wyzwalania migawki od 1s do 24h Jeżeli ktoś jest zainteresowany to mogę wrzucić źródło w BASCOM. pozdrawiam Hubert -
Hej, Rezystory są źle oznaczone na schemacie - przepraszam. Wlutowane są prawidłowo - napięcie pomierzone względem masy jest prawidłowe. Dzielnik zmieniłem i jest przed diodą. Dodanie kondensatora C6 za diodą powodowało, że przy rozłączeniu zasilania mega nic nie zapisywała i zliczała od zera. Podobnie jak wpisanie polecenia RISING. Odlutowałem C6 i...
Jeśli ten zapłon ma byc tylko bezstykowy to nie trzeba do neigo żadnego mikroprocesora, starczy wyspecjalizowany scalak i dopasowanie wyzwalania przy stałym wyprzedzeniu zapłonu jeśli kolega jest zainteresowany do podrzucę w przyszłym tygodniu symbol układu, jest powszechnie dostępny cena coś koło 20 PLN.
Możesz w Bascomie załatwić wszystko na samych rejestrach, skoro polecenie Getadc się "gubi": ADMUX=b11010000 ' Vref =2.56 z zewnetrznym kondensatorem, pomiar dla ADC0 ADCSRA=b11000111 'włączony ADC i uruchomiona konwersja, wyłączone przerwania, preskaler na 128 teraz czekasz np 100ms i odczytujesz stan rejestrów ADCH (MSB ) i ADCL (LSB) wyzwalasz następną...
Sprawa jest dość prosta. Trzeba zrobić układ wykrywający moment przejścia przez zero napięcia zasilania. Układ ten powinien wyzwalać przerwanie. W procedurze obsługi przerwania wyzwalamy odliczanie timera. Maksymalny czas pracy timera musi być trochę mniejszy niż połowa okresu. Należy go też uzależnić od jakiejś zmiennej której wartość będziemy zmieniać...
Dziekuje za pomoc, teraz wszystko działa jak należy, teraz pojawił się następujący problem: Ponieważ transoptor który służy do wykrywania zera, wykrywa zero ok 2ms po faktycznym zerze sieci, nie mogę dostać pełnej sinusoidy zasilającej żarówkę, ponieważ nawet gdy wyzwalam triak w momencie uruchomienia przerwania int0 (timer1=65535) to zostanie podana...
Jeśli możesz napisz program który będzie migał diodą na porta.1 przy portach B C i D ustawionych jako wejścia (kwarc 8MHz). Po prostu żeby sprawdzić co tu nie gra. Ok. Ale po wiedz mi w jakim celu chcesz mieć ustawione porty B,C,D jako wejścia bo z tego co rozumiem to diodka ma sobie tylko migać. Czy może ma być wyzwalana dopiero przy pojawieniu się...
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...
Czesc, Jak zrobic zeby na wejsciu np. Pinc.1 ustawionego na input mozna bylo podlaczyc +5V i to odczytac oczywiscie - kompil. Bascom. pozdrawiam Nie wiem czy dobrze cię zrozumiałem, no może. Gdy chcesz aby pin był wyzwalany minusem, czyli złączeniem z masą to robisz tak. Config pinc.1=input i set portc.1 powoduje to przez wewnętrzny rezystor podciągnięcie...
jest nieżle ,program działa,ale jest jeden drobny mankament: wyzwala zawsze przekażnik jeden wyżej,czyli wpisuję 01 a wyzwala 2,wpisuję 02 a wyzwala 3. problem polega na tym, że dane w dacie liczone są od 0,1,2 ... a Pan zaczyna liczyć od 1, 2, 3... rozwiązania są dwa albo dodanie dwóch elementów na początek (post powyżej) lub wpisanie w kodzie tak:...
biglolo94 - NSel podłącz pod pin SS interfejsu SPI (chociaż to bez znaczenia, może być dowolny pin IO), NIRQ podłącz pod pin na którym masz możliwość wyzwalania przerwania zboczem - to wyjście modułu jest aktywne, kiedy dzieje się coś co wymaga twojej uwagi - np. odebranie pakiety, czy cokolwiek co sobie ustawisz w rejestrach zdarzeń.
Tak wiem doskonale że ładowanie próbek w określonym czasie przez wait ileś tam da złe efekty, (ale generalnie to działa) ale myślałem o spowolnieniach albo przyśpieszeniu, a nie o pierdzeniu i "cyfrowych schodkach" nałożonym na zupełnie dobrze odtwarzaną muzykę. Pokombinuję teraz z wyzwalaniem timerem. Nie wiem jednak też jak to dokładnie zrobić. Otóż...
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...
Można podpiąć do którejkolwiek, ustawionej na wejście, jednak najwygodniej będzie na T0 lub T1 , które będa wyzwalały liczniki wbudowane w tym procesorze. Natomiast inny licznik co jakiś czas wyzwala przerwanie, którego procedura obsługi odczytuje ile już naliczył ten pierwszy licznik, przelicza wynik pomiaru na np. m/s, zeruje go i "pcha" to np. na...
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...
Mam uwagę: 1. ideą jest aby klawisz on/off był trzymany przynajmniej 3s, w obsłudze przerwania jest zwłoka 3s a to nie to samo - powinno być po 3s sprawdzenie czy klawisz on/off jest nadal wciśnięty; 2. nie znam dokładnie tego procesora, czym jest wyzwalane przerwanie: zboczem opadającym, stanem niskim czy zboczem narastającym, czy jest możliwość konfiguracji...
Przerwania rzeczywiście są lepszym pomysłem. Ustaw na zbocze opadające albo narastające w zależności jaki sygnał masz gdy nie ma żadnego obiektu w barierze. Jeżeli coś wjedzie w bariere to wygeneruje zbocze i ty na to zbocze powinieneś się wyzwolić - jeżeli normalnym stanem pracy jest stan wysoki na INT0 to wyzwalasz opadającym jak stan niski to narastającym....
Piszę program, do czasowego wyzwalania migawki: Na pokładzie mam attiny13, tact-switcha, oraz diodę led i transoptor. Układ ma wysyłać impuls ok 300ms co określony czas. Czas ustawia się poprzez wciskanie przycisku - jedno wciśnięcie = 0.5s więcej. Dłuższe przyciśnięcie (pow. 3s) powoduje ustawienie minimalnego czasu(0.5s). Problem jest taki, że im...
Witam. Czy ktoś z forumowiczów wie, jak podpiąć czujnik ruchu lhi 968 do atmegi tak by wykrycie ruchu wyzwalało przerwanie w uC? Nota tego czujnika [url=http://www.alliedelec.com/Images/Pr... niewiele mi mowi. No i ewentualnie jak go obsłużyć z poziomu Bascom? Za porady...
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....
aaaa - tyle że ja myślałem o tym: http://www.ikalogic.com/scanalogic2/inde... ;) IKA też - fajny - - najlepiej mieć obydwa :-) i ich przydatność przy testowaniu RS485 jest niepodważalna. ten co ja mam chodzi 5 razy szybciej i dekoduje więcej protokołów. W standardzie ma kilka popularnych - a kolejne można dokupowywać. Myślę że czasami nie warto sobie...
A może problem z wyzwalaniem przerwania zboczem/poziomem? Tak się czasami dzieje, jak sygnał trwa zbyt długo i przerwanie wykonuje się cyklicznie (poziomem). Albo zboczem i w trakcie obsługi przerwania pojawia się kolejny impuls wyzwalający. W zależności od specyfiki programu (czy jest on ważny, czy nie) trzeba go kasować przed RETI. Pozdrawiam
Ja wstawiłem rezystor 240ohm i kondensator 10uF. Kody które mi pokazuje sa naprawdę bzdurne. Najczęściej są takie zame i wyzwalają się także samowolnie np. gdy zakryję i odsłonie czujnik przed światłem. Czujnik juz wynieniałem, proca też. czyli musi być coś z odbiorem.... Naprawdę nieciekawa sprawa...
witam jest proste w asm ale w c też nie powinno być problemu. Przerwania INT0 i INT1 mogą być wyzwalane zmianą stanu napięcia wysokim lub stanem niskim . Odpowiednio ustawić bit w rejestrze MCUCSR. Ustawić bit aktywujący przerwanie w rejestrze GICR. mierzysz czas przez odczyt TIMERa
Aktualnie program wygląda następująco: [syntax=basic4gl]$regfile = "attiny13.dat" $crystal = 9600000 Config Pinb.0 = Input 'zero-crossing Config Pinb.2 = Output 'triac Triac Alias Pinb.2 Pcmsk = &B00000001 'PCINT0 Change Int activation On Pcint0 Pin_change_isr Enable Pcint0 Enable Interrupts Do nop Loop End Pin_change_isr: Waitus 2500 Triac = 1 Waitus...
Najczęściej robi się to odwrotnie - pin B.1 zwierasz do masy, a komendą SET podciągasz go do plusa zasilania. Wtedy program sprawdza "If portb.1=0 then...". Przy okazji, warto używać aliasów, wówczas program jest czytelniejszy, a ewentualna zmiana pinu to poprawka jednej linijki. Jeśli jednak z jakiś powodów musisz wyzwalać port jedynką, to podajesz...
tak, o to chodziło. Zależność miedzy częstotliwością a OCR2 powinna być liniowa? Bo układ steruje obrotomierzem i niestety wskazania jego nie są liniowo zależne od „f” a powinny. W samochodzie są liniowo zależne od częstotliwości impulsów z cewki. Podejrzewam, że wypełnienie 50% wprowadza nieliniowość w obrotomierzu. Jak mogę zmniejszyć...
Pomiar napięcia baterii tak wykonany by dzielnik napięcia nie pobierał stale prądu z akumulatora. Programowo robisz tak. - włączasz zasilanie przetwornik ADC - ustawiasz PD3 = 0 - wyzwalasz dokonanie jednego pomiaru na ADC3 - ustawiasz PD3 = 1 - odczytujesz dane - wyłączasz zasilanie przetwornika ADC Dzielnik pobiera prąd tylko przez krótką chwilę....
Dawno w Bascomie AVR nie robiłem - i faktycznie w ustawieniach kompilatora nie ma nic o nozce pod którą podłączasz odbiornik, ale należy ją zadeklarować poleceniem config rc5 - co zresztą pewnie korzystając z pomocy zrobiłeś. Jednak nadal problem jest w tym, że odbiór kodu musi zostać zainicjowany - i właśnie dlatego MUSISZ sprawdzać stan nogi programowo...
Witajcie ! Mam taką zamotaną sytuację. Na początek kod, albo raczej jego istotne fragmenty: [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 16000000 $hwstack = 128 $swstack = 128 $framesize = 128 Config Timer1 = Timer , Prescale = 8 , Clear Timer = 1 , Compare A = Toggle Enable Interrupts Start Timer1 On Oc1a Timer1_isr Enable Timer1 Ocr1a = 50...
bbiidduull, przeanalizuj swój kod, zakładając, że przycisk jest stale naciśnięty - zobaczysz, że co 200ms pętla się wykona. Musisz zrobić coś, by zdarzeniem wyzwalającym działanie była zmiana stanu Pinb.1 z '1' na '0'. Najprościej po wykryciu stanu '0' wstaw pętlę oczekiwania na stan '1' (puszczenie klawisza). Oczywiście do tego dochodzi kwestia eliminacji...
Witam!! Ustawiłem sobie powyższym poleceniem wyjścia kilku serw, teraz chciałbm aby w programie móc wyłączyć generowanie impulsów dla jednego z serw, poleceniem disable timer0 przestaje generowac impulsy dla wszystkich a zmiana portu z wyjściowego na wejściowy nic nie daje... Jest jakaś możliwość?? Ponadto, jakie są najdłuższe interwały przerwania wyzwalanego...
Ups... :oops: Przepraszam za wprowadzenie w błąd, nie zauważyłem tego: '89C2051' Nie pamiętam czy w Bascom'ie '51 jest jakieś konkretne polecenie do ustawiania sposobu obsługi przerwań (daawno go nie używałem), ale to powinno zadziałać: Set Tcon.0 Set Tcon.2 Po dodaniu tego gdzieś na początku programu przerwania zewnętrzne będą wyzwalane zboczem opadającym....
taki uklad powinienes zbudowac podobnie jak serwo modelarskie moze sa jakies gotowce , czy na pewno chcesz to budowac na mikrokontrolerze? W wersji nieprogramowalnej to kazdy np poczatek impulsu wyzwala 2 monowibratory jeden dodajacy obroty drugi odejmujacy, impulsy sa porownywane(odejmowane) i to co zostaje-reszta kreci silnikiem zwiekszajac lub zminiejszajac...
Hej! Wpiąłem się bezpośrednio w moduł centralki pod tylnym siedzeniem i w dodatku wyzwalając impuls masą. Rzekomo działało wszystko bez zastrzeżeń. Dopiero po 3 dniach się sp.... ;-) Moje sterowanie z pilota podaje masę, pewnie musiałbym popdpiąć się pod drzwi i zastosować przekaźniki żeby podawał "plus". Ogólnie to dzięki wielkie za poradę! P.S. Czy...
Witam, mam następujące zadanie: czujnik z wyjściem analogowym 4-20mA, enkoder taktujący pomiar z czujnika, wysłanie pomiaru przez RS-232 do PC. Enkoder pracuje w osi koła i generuje impuls co 25mm. Impuls wyzwala konwersję ADC z czujnika, wynik zostaje wysłany do PC. Problem w tym że nie mam pojęcia jak to zrobić. Mam do wyboru ATmega16 lub 128 i C...
witam Mam pewien problem ze skonfigurowaniem przerwania w Atmega8. Program ma wysyłać dane przez UART w zależności od stanu na końcówce PD2 ( INT0 ). Jeżeli ma stan niski to sprawdza jedną zmienną i w zależności od niej wysyła dane. Jeżeli ma stan wysoki to tak samo. Ale tylko jednorazowa zmiana powinna powodować wysłanie danych. Wymyśliłem, że obsłużę...
Witam kupiłem ostatnio nadajnik i odbiornik ultradźwiękowy, dziś się męczyłem próbowałem to uruchomić no ale niestety nic z tego nie wyszło, najprawdopodobniej to wina programu. To chyba coś nie tak z ustawieniem komparatora. Proszę o pomoc. http://obrazki.elektroda.net/27_12249746... Config Portc = &B0000000 Portc = &B0000000 Config Portb...
Ja też do tej pory pracowałem głównie na asemblerze 8051. Ale postanowiłem przesiąść się na AVR i stąd ten nieszczęsny BASCOM. ALe już widzę że choć narzędzie jest proste to ma wiele ograniczeń. Asembler pozwala wszystko zrobić optymalnie i precyzyjnie w BASCOM-ie jest to dosyć dyskusyjne. Co masz na myśli mówiąc o "cofkach enkodera" ? W układzie który...
wyzwalanie diakiem wyzwalanie oscyloskop dloadx wyzwalanie
pomiar parametrów tranzystorów radio philips renault megane karty pirackie
Zielony ekran w telewizorze - jak naprawić? Laptop się nagrzał i wyłączył - co robić?