Skoro dobrze działa i napisałeś to w tylu linijkach to nie da się prościej i lepiej. Przerwania są wykonywane "na raz" z programem, więc nic nie może ich zatrzymać.
Dzięki za odpowiedzi. Sterowanie PWM już mam zrobione, teraz chciałbym wyświetlać prędkość obrotów. W jaki sposób się za to zabrać? Za pomocą licznika? Może ktoś podpowiedzieć? Wentylator jest 4 pinowy i ma oddzielny kabel do tego celu przeznaczony. I drugie pytanie, czy przy zerowym wypełnieniu wentylator powinien się obracać? Czy to zależy od typy...
Dobra. Kod prezentuje się następująco: to jest program w którym wszystko działa jak potrzeba: [syntax=cpp]//Data utworzenie: 20-09-2014 #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <avr/pgmspace.h> #include "MYUART/myuart.h" #include "MK_TERMINAL/mk_term.h" #define REF_256 (1<<REFS1)|(1<<REFS0)...
Witam. Mam przerobione serwo tak aby obracało się dookoła, odpiąłem potencjometr który jest w środku (5k) i wlutowałem miniaturowy i ustawiłem go w połowie tak aby serwo myślało że jest na środku.Oryginalną elektronikę zostawiłem. Jednak mam taki problem,jak uda mi się kręcić serwem w obie strony to go nie mogę zatrzymać. Jak skręcę potencjometr na...
Witam Od jakiegoś czasu próbuję uruchomić pierwszy projekt na mikrokontrolerze ATmega328P. Ma to być zegarek oparty o moduł RTC DS1307. W Internecie znalazłem dość dobrze opisany kod autorstwa Bruce E. Hall, na stronie internetowej W8BH (nie mogę wklejać linków, ale bardzo łatwo go znaleźć w Google), który postanowiłem wykorzystać. Przypisałem wszystkie...
Witam To moja pierwsza próba zaprogramowania uC i jak na razie idzie mi z tym pod górkę. Korzystam z programatora stk500v2. Po zainstalowaniu sterowników i uruchomieniu programatora zgodnie z zaleceniami producenta udało mi się sczytać a następnie ustawić fuse bity w w ATmega32A. Podłączyłem zewnętrzny kwarc 16MHz, więc korzystając z kalkulatora ustawiłem...
Witam, niedawno zbudowalem sterownik podlewania załączający elektrozawory o okreslonych godzinach na Atmega32. Sterownik działa bez zarzutu, jednak postanowiłem dołożyć zasilanie bateryjne aby w razie braku prądu sterownik dzialal tzn aby nie zresetował sie. Bateria 9V podłączylem przed stabilizatorem zaraz za mostkiem prostowniczm dalem diode prostownicza...
Witam, Pracuję na zestawie ZL3AVR z Kamami. Kwarc mam ustawiony na wewnętrzny 8MHz. Przerabiam lekcję 15 z Kursu programowania mikrokontrolerów w języku C z EdW. Podłączyłem wyświetlacz zgodnie z kursem, ale nic się nie pojawiło na wyświetlaczu. Sprawdzałem połączenia, przylutowałem przewody do drugiego wyświetlacze i też nic. Poniż zamieszczam kod:...
Skoro uparłeś się na softwareowe PWM to musisz je wrzucić do przerwania jakiegoś timera, np Timer0. Dostaniesz przerwanie za każdym razem gdy timer doliczy do 255 i się przepełni. Oczywiście znacząco spada ci jakość PWM na małych wypełnieniach. Dlatego dla Timer0 ustaw preskaler zegara na niską wartość np 8 lub 64. Nie dawaj 0 bo główny program ci za...
Silnik ruszył:)Pięknie zmienia kierunek obrotów. Problem jest w regulacji obrotów, ponieważ są cały czas są stałe .Drugi problem jest w włączaniu/wyłączaniu silnika. Pomimo różnych zmian w programie nadal nie mogę go przyciskami włączyć i wyłączyć . Silnik cały czas chodzi i nie chce się zatrzymać. Pokaż cały program, z którym masz te objawy. Ostatnie...
wynik wyswietli sie 2x, a nie trzy, pytanie - dlaczego? Na to pytanie, odpowiedź jest prostsza :-) Kiedy wywołujesz return 0, funkcja main powraca (to ogólnie nie najlepszy pomysł). W asemblerze, wywołanie funkcji main wygląda tak: 48:32 d0 rcall.+100 ; 0xae <main> 4a:4e c1 rjmp.+668 ; 0x2e8 <_exit> Po zakończeniu funkcji main wykonany...
Witam Ponownie, Problem mam z prawidłowym zaimplementowaniem gotowej biblioteki obsługi dotyku na wyświetlaczu 2,4 " . A mianowicie ustaliłem trzy obszary dotyku równo w odstępach po długości ekranu ale nie do końca po szerokości i jeśli mój palec dotknie jednego z nich w tym miejscu pojawi się zielony prostokąt. Wszystko było fajnie jak był tylko skrajny...
Witam w jaki sposób wykonać zabezpieczenie nadrpądowe silnika podłączeonego do atmegi aby silnik zatrzymał się i zmienił kierunek gdy natrafi na wiekszy opór , to jest gdy fizycznie ręką na przykłąd będę próbował go zatrzymać?
Witam, moze przetestuj takie podejscie: - monitoruj linje zasilania od chwili wlaczenia mechanizmu az do jego zatrzymania - szukaj na roznych linjach sygnalow zaklucajacych w okolicach momentu zatrzymania mechanizmu - ja bym sie skupil na zasilaniu mechanizmu oraz jego linji sterujacej Swoja droga czy wiadomo co siedzi w srodku tego mechanizmu wzgledme...
Temat rozwiązałem. Gienek naprowadził mnie na właściwy trop. Mój błąd polegał na wyborze taktowania procesora z zewnętrznego zegara a nie z kwarcowego procesora. W efekcie procesor został zatrzymany z powodu braku taktowania. Z pomocą przyszedł mi posiadany programator STK500 który ma na złączu ISP wyprowadzony sygnał zegarowy. Ten sygnał (pin 3 ) podałem...
Poczyniłem programik w C do zliczania impulsów z zewn. wejścia T1. Program zlicza impulsy do T1 w czasie ustalanym przez T0. Sterowanie jest tak ustawione że pierwsze odliczanie wpisywane jest do F1, drugie do F2, trzecie do F3 i tak w kółko. Na czas wyświetlania na LCD wyłączyłem przerwania. Wszystko działa ale nie do końca prawidłowo. Problem polega...
Od kilku dni przeszukuję internet w tym elektrodę w zakresie odpowiedniego sterownika do silnika. Dlatego bardzo proszę Was o pomoc. Sytuacja wygląda tak: Atmega328 powinna sterować bezpośrednio sterownikiem a ten silnikiem. Tak więc stany i PWM powinny być w zakresie 5V. Silnik jest przerobionym mini serwem więc pracuje w zakresie najlepiej 5-6V (wtedy...
Ponieważ występował problem w momencie, gdy zatrzymywałem silnik w momencie rozruchu. tzn. po ponownym aktywowaniu timera, OCR0 przechowywało starą wartość, czyli potrafił się uruchomić z wypełnieniem, na którym zatrzymał się silnik. Nie wyłączaj timera aby zatrzymać silnik tylko ustw OCR na 0. naturalnie bedzie "piczek" 1/256. Jeśli piczek jest problemem,...
tmf napisał: W tym celu musisz tylko stworzyć odpowiedni deskryptor. No to troszkę bardziej złożone niż tylko napisanie deskryptora bo ta biedny AVR bedzie obsługiwać więcej endpoint-ów, musi napisać obsługę obydwu klas i odpowiednią maszynę stanów do rozdzielania ruchu do endpoint-ów, dużo więcej pamięci. Generalnie urządzenia composite są dość nieprzyjemne...
Witam, Proszę o pomoc w uruchomieniu transmisji UART w procesorach ATmega. Chodzi konkretnie o podłączenie procesora ATmega32 oraz ATmega8. Transmisja ma odbywać się w dwóch kierunkach wg następującego schematu: 1. Atmega32 wysyła bajt do ATmega8 2. ATmega8 odsyła bajt do ATmega32 3. ATmega32 sprawdza czy to co wysłał zgadza się z tym co odebrał -jeśli...
Wydawnictwo BTC ma książkę o silnikach elektrycznych. Poszukaj na stronie. A będziesz musiał mierzyć prąd silnika(czyli pomiar różnicowy napięć na jakimś oporniku), napięcie na zaciskach silnika i obroty. Jeśli to ma być pomiar "niszczący" silnik czyli ile czasu wytrzyma silnik zatrzymany lub prawie całkowicie zatrzymany to potrzebna jest prądnica tachometryczna....
Dodajesz zmienną: /* definicja typu "kierunek_t" i jego wartości */ typedef kierunek_t enum { DIR_STOP, DIR_PRAWO, DIR_LEWO }; /* zmienne w main */ kierunek_t poprzedni_kierunek; kierunek_t kierunek = DIR_STOP; while (1) { poprzedni_kierunek = kierunek; if (/* warunek dla kierunku w prawo */) { kierunek...
Buduję układ do pomiaru napięcia na dwóch kanałach w układzie różnicowym z wykorzystaniem przetwornika MCP3302, oraz atmegi324 taktowanej kwarcem 20mhz. Proszę o sprawdzenie mojego toku rozumowania, ewentualnie naprowadzenie mnie na dobrą drogę. Zacznę od schematów: Głównie moje pytania dotyczą komunikacji czyli odbierania i wysylania danych, a w związku...
Problemem jest to, że tekst deklarowany jest jako tablica znaków, a inicjowany c-stringiem... const char PWRON[18] = "System URUCHOMIONY"; Definiujesz tablicę o długości 18 znaków i wpisujesz do niej ciąg 19 znaków (to jest c-string, więc jest tam już \0 na końcu ale wypada poza rozmiarem tablicy, stąd powinno być ostrzeżenie kompilatora). Gdybyś zadeklarował...
Witam. Realizuje właśnie projekt układu który steruje panelem słonecznym i mam pewien problem, mianowicie wyświetlacz nie reaguje na mikrokontroler (cały czas wyświetla tylko czarne prostokąty w pierwszej linii). Korzystam z gotowych bibliotek hd44780.h: Próbowałem bibliotek z kilku różnych źródeł i nic się nie zmienia. Podejrzewam, że problem jest...
(at)atom1477 Wzmacniacz był badany za detektorem. Sprawdzane było zbocze narastające przy wywołaniu pojedynczym impulsem i przy wywołaniu sygnałem prostokątnym 40kHz nie było różnicy w amplitudzie ani w czasie narastania. Na tej podstawie stwierdziłem że wzmacniacz działa prawidłowo. Dodatkowo na oscylogramach kanał niebieski to bezpośrednio wyjście...
naciśnij F5 (Run) jak zatrzyma się na Breakpoint wykonaj kod przerwania krokowo F11 naciśnij F5 (Run) jak zatrzyma się na Breakpoint wykonaj kod przerwania krokowo F11 itd. Tak faktycznie widać zmiany na PORTA, myślałem, że mogę odpalić auto step i będę widział zmiany diody w czasie rzeczywistym co 1 sekundę. Napisz jaką masz faktyczną częstotliwość...
Pytanie tylko, co mogło być powodem uszkodzenia? Zakłócenia same w sobie? Dodałeś diody tak w ciemno czy robiłeś jakiś research? Tak w skrócie silnik jest obciążeniem indukcyjnym i zawsze sterujące nimi tranzystory się zabezpiecza. Często też silnik zanim się zatrzyma jest generatorem prądu. Wpisz w wyszukiwarkę "zabezpieczanie tranzystora" a resztę...
Wzorowałem się na przykładzie z sieci. Czy poniższy kod wygląda ok? Póki co nie mam jak sprawdzić na biurku, jedynie widzę, że krótkie połączenia pinu do masy pokazują mi na LCD pewno wartości i przeważnie zaraz się zerują(czasami zostaje jakaś wartość). [syntax=c] //************** ICP PRZERWANIE TIMER1 *************************************** ISR(TIMER1_CAPT_vect)...
Sygnały CTS i RTS służą do sterowania transmisją zabezpieczają przed zbyt szybkim wysyłaniu danych mogących spowodować utratę części informacji do sterowania tymi sygnałami najlepiej wykorzystać przerwania generowane przez uart umożliwi to zatrzymanie transmisji na czas w którym modem jest zajęty innymi operacjami . W internecie znajdziesz wiele opisów...
No cóż. Widzę że kolega nie ma wielkiego doświadczenia w "analogówce". BDX54C to tranzystor PNP - na schemacie NPN. Jeli to PNP to emiter musi mieć wyższy potencjał od kolektora (zamieniony kolektor z emiterem). Dodatkowo przy takim połączeniu (jeśli to ma być tranzystor PNP) na porcie procesora będzie zbyt wysokie napięcie i procesor długo nie pożyje....
Problem jest w tym że ogólnie w tym temacie jestem bardzo słaby i nawet nie wiem jaka fotokomórke wybrać ... I jak napisać kod aby poprawnie działała Czyli moja fotokomórka podłączana do atmegi będzie wysyłać sygnał do odbiornika i jeśli sygnał będzie przerwany to silnik się zatrzyma
A gdy przerwanie załóżmy wystąpi po uruchomieniu watchdoga, ale przed instrukcją cli(). Wtedy w przerwaniu zostanie wyłączony watchdog i cały program zatrzyma się na while(1)? To w takim razie można używać przerwań do wyłączania watchdoga?
Użyj najnowszej wersji AS - nie ma sensu używać prehistorii typu AS 6.2. Stwórz nowy projekt C, na ATMega328P, podłącz Xplained, odpal debuger, zatrzymaj go. Oczywiscie wybierz jako narzędzie debugera płytkę Xplained. Może od tych różnych reinstalacji gryzą się jakieś sterowniki. Warto je odinstalować.
Na początek takie pytanie: Czy przeglądałeś te pliki które zamieściłem w poprzednim poście? Tam jest ładnie wyjaśnione o co chodzi z tym rokiem. Nie możesz ustawić w PCF-ie roku większego niż 3 z uwagi na fakt, że jest on zapisywany tylko w dwóch najstarszych bitach rejestru dni miesiąca. Skoro to tylko dwa bity, to może on się zmieniać w zakresie od...
Obie rady okazały się trafione, rzeczywiście nie zauważyłem, że błędnie przywracałem rejestry ze stosu i zamiana r16 z r17 przy pop pomogła na te zatrzymania programu. Czasy też się poprawiły przy zmianie ustawień timera. Dzięki bardzo za pomoc.
Użyj przerwań a nie robisz je programowo Kolega Ch.M. napisał ze mam użyć przerwań, no wiec sie pytam jak to zrobić? W układach AVR Mega wyzwalanie przerwania linii INT0-INT3 odbywa się na skutek stwierdzenia niskiego poziomu (LOW LEVEL) i nie jest on konfigurowalny. Wiec jak mam wykryć stan wysoki żeby zatrzymać zliczanie TIMERa? Piotr
No wiec sygnal 40khz spokojnie mozna odbierzyc za pomoca timera;) ale tylko piszac w asm, w C procedura obslugi przerwania jest zbyt dluga, no a sekunde(a jednak:):) ) chyba zdecydowanie na timerze najlepiej odnierzyc:) z tym 40kHz to jeszcze zalezy od dokladnosci z jaka ma on byc generowany. Jesli wachania moga byc +-1% to nie ma problemu. Pytanie...
Tak negatory to IC2. Służą one do sterowania silnikami DC poprzez mostki STA434A. Jeśli zabraknie prądu to silniki przestaną pracować i w zasadzie obojętne jest jaki będzie wówczas stan na wyjściach negatorów. Nie wiem też czy mostek pobierałby wtedy prąd czy nie, ale z tego co zrozumiałem to sam negator by pobierał dla utrzymania takiego stanu? Jeśli...
Witam. Mam problem, podejrzewam z opóźnieniami w inicjacji LCD. Mam do zrobienia komunikacje szeregową pomiedzy ZL10AVR z ATmega32 a komputerem PC. Program działa tak, że jak nacisnę przycisk 1 (S12) to na komputerze uruchamia sie program notatnik (to zrobilem w programie LabView - ale to nie wazne). Chodzi mi o to - jak nacisnę ten przycisk to na wyświetlaczu...
To w jaki sposób polecasz mierzyć prąd. Chcę by silniczek zatrzymał się gdy na trafi na opór i prąd się zwiększy. Żadne krańcówki nie wchodzą w grę. Silnik pobiera w czasie normalnej pracy 5-6A.
Po przerobieniu kod wygląda tak: // Testowanie timera 0 (przerwania) #include <avr/io.h> // dostęp do rejestrów #include <avr/interrupt.h> // funkcje sei(), cli() #define T0_INIT 256-250 #define tbi(PORT,BIT) PORT^=_BV(BIT) // przełącza stan BITu w PORTcie na przeciwny 1->0 ; 0->1 //unsigned...
Witam, mam problem z obsługą CALL, nie wiem jak to obsłużyć i zaimplementować a i raczej bez stosu się nie obejdzie. Program to terowanie silnikiem krokowym, i chciałem żeby po każdym kroku skoczył do etykiety PRZYCISK i sprawdził czy wciśnięta, jeżeli tak, to żeby powrócił w to samo miejsce i wykonał następny krok. jeżeli mógłby ktoś pomoc byłbym wdzięczny,...
To na ileż ty czasu te przerwania wyłączasz przy odczycie DS'a ??? Poza tym nawet z tym wyłączaniem przerwań, co i tak powinno trwać bardzo krótko, rzędu wykonania kilku rozkazów odczytu, to co za problem dla PWM'a który ma sterować czymś takim jak wentylatory? Gdybyś sterował diodę LED to może byś zobaczył czasem z powodu wyłączenia przerwań dla DS'a...
Wyswietlacz kolorowy ma chyba ta wade ze musi byc podswietlany by bylo cokolwiek widac, morochromatyczny raczej nie az tak. Ja bym spróbował wepchnąć pod wyświetlacz warstwę refleksyjna w formie jakiejś folii odblaskowej dla przykładu oraz zwiększył fonty zegara i ograniczył się do minut. Szkoda ze trochę oprogramowanie dość ubogie,można by dodać więcej...
Źle do tego podchodzisz. Całe multipleksowanie zrób w przerwaniu timera, który określi dokładnie jak długo wyświetlana będzie każda cyfra. Teraz to robisz w pętli idącej z max szybkością proca, w efekcie piekielnie szybko multipleksujesz LCD, co pomniejsza ich jasność, a dwa, że jak program się na czymś na chwilę zatrzyma (czyli odczycie PCF) to całość...
Hej. Męczyłem się trochę z programem, ale ostatecznie nie udaje mi się zrobić jednej rzeczy. Po poprawnym (bo tak mi się wydaje) włączeniu odtwarzania dźwięku przez PWM, nie mogę go wyłączyć tzn. nawet jak już na czujniku nie ma napięcia, czyli odczyt powinien być "0"(testuje odłączając całkowicie czujnik) to komunikat dźwiękowy nadal jest wywoływany....
Pisałem wcześniej że nie mam ponieważ zatrzymałem się na błędzie który dostaje. Posługując się notą katalogową (str 18) po wykonaniu soft restart i odczekaniu 15ms, zaczynam wysyłać instrukcje odczytu temperatury w trybie hold master. W tym celu kopiuje początek instrukcji soft reset. Bit START- adresuje 7bit + write(0) = 100000000=128, spodziewam się...
zatrzymaj ADC to ma być instrukcja zatrzymująca przetwornik ADC, np. wyzerowanie bitu ADEN albo wyłaczenie trybu free-running. Jeśli nie używasz innych przerwań (przynajmiej w trakcie rejestracji danych) możesz po prostu swój pierwszy program uzupełnić o instrukcję sleep_cpu() w pętli zbierania danych. Procesor zatrzyma się wtedy do pierwszego przerwania....
A change of the COM1x1:0 bits state will have effect at the first compare match after the bits are written. For non-PWM modes, the action can be forced to have immediate effect by using the FOC1x strobe bits. Być może w tym jest problem. OC1A jest prawdopodobnie inicjowane z wartością 0 do momentu wystąpienia pierwszego "compare match". W trybach "set...
Założeniem projektu było stworzenie uniwersalnego sterownika współpracującego z mikro-kontrolerem w celu sterowania dwóch silników DC o prądzie nie przekraczającym 2A na silnik. Bądź jednego bipolarnego silnika krokowego o prądzie nie przekraczający 2A faza. Silnik krokowy sterowany jest pełnokorokowo z możliwością sterowania zarówno prądu płynącego...
Witajcie, mam problem nad którym siedzę juz kilka dni i zatrzymałem się nie wiedząc gdzie tkwi problem. Otóż chcę obsługiwać zegar RTC PCF8563 po I2C - czytać i zapisywać z niego dane (datę i czas). Projekt mam podzielony na kilka plików, całość pisana w Code Blocks 10.5 i kompilowana w AVR GCC. Mam zdefiniowaną strukturę do zapisu danych z zegara do...
Czytam z dystansem to co piszesz i żal mi Ciebie, ale wybrałeś sobie projekt, który Ciebie przerasta, i w wykonaniu którego każdy kabelek, lut czy ścieżka może być problemem. Zastanów się, czy jednak nie lepiej zatrzymać się na tym etapie, zrobić coś prostego, by nabrać doświadczenia, a za 2 tygodnie wrócić do tego projektu, mając dużo szerszą wiedzę...
... to wtedy zostaje zliczony jako osoba wchodząca do pomieszczenia. :) jeżeli tak jest to po co czekasz na drugą barierę? Trudno by było to przewidzieć, chyba żeby wykombinować jakąś inną zasadę działania. np. wchodzę, timer odlicza 1 sekundę, jak przejdę przez drugą barierę to się zliczy a jak nie to zmienna się nie zmienia. Chyba,że ktoś ma inny...
Witam, Na forum jest od 4 lat, lecz to jest mój pierwszy post :) Nie dawno zacząłem zabawę z AVR-ami. Kupiłem potrzebne elementy, złożyłem i przystąpiłem do pisania programu. Niestety zatrzymałem się na komunikacji z serwerem http. Chciałbym aby mój kontroler łączył się z podaną stroną www wysyłając zadanie GET lub POST i pobierał z niej otrzymany ciąg...
Pokaż cały program a nie tylko wyrywki. Przydałoby się zobaczyć co się dzieje podczas wysyłania zmiennej impulsy2 na wyświetlacz. Panowie, gdyby do tak prostych rzeczy trzeba było używać debugera to w zasadzie człowiek by się posuwał z pisaniem i tworzeniem projektów wolniej niż zółw a często by się w ogóle zatrzymał i porzucił wszystko - np na prockach...
To moze inaczej: czy o cos takiego chodzi ? ADC_read [syntax=c] unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input|0xE0; // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); return ADCH; } [/syntax] [syntax=c] ISR(ADC_vect) //obługa przerwania, wpis wartości do zmiennych z...
Witam, próbuję zaprogramować prosty zegarek na PCF8583 na płytce EvB i już na wstępie napotkałem na ścianę. Jestem początkujący - generalnie to pierwszy program w bascomie, który ma więcej niż kilkanaście linijek, więc liczę na Waszą wyrozumiałość i pomoc. Udało mi się na podstawie przykładów z tego forum i zaczerpniętych z netu, zmusić do działania...
Witam Wiem, że temat przycisku jest mocno nadwyrężony, ale ... Program ma jednym przyciskiem przy dłuższym przytrzymaniu zwiększać i zmniejszać wartość wyjścia PWM ( na zmianę ) lub przy krótszym włączyć/wyłączyć, czyli pwm1a = 0 lub pwm1a = 255. Praktycznie, potrzebujesz uskutecznić cztery a nie dwie funkcje: -włączyć/wyłączyć - to są dwie; -zwiększać...
Witam! Mam program, który wykorzystuje liczniki do wysyłania impulsów o danej częstotliwości. Częstotliwością steruję za pomocą zmiennej okres1, która jest mnożnikiem preskalera. Np. preskaler=8 clkio=1000000Mhz okres1=127, czyli co 8*128=1024us zmienia się stan na danym pinie przerwania od przepełnienia licznika (dla timera1a jest to pd5), co znaczy,...
Witam, mam mały program napisałem przy użyciu książki Pana Marcina Wiązania oraz przy użyciu elektrody do obsługi matrycy led, lecz mam nieporządany efekt stroboskopowy. Nie widać liter, tekstu, tylko wszystkie diody mrugają. Czy to jest spowodowane zasilaniem czy też błędem programu? Dorzucam dwa programy, przy których pracowałem i schemat, schemat...
Ponadto dodam, że po tej konfiguracji, o ile nie chcemy używać automatycznego mierzenia czasu i nie zamierzamy podpiąć kwarcu zegarkowego, to wystarczy wyzerowac odpowiedni rejestr w uC odpowiedzialny za pracę timera 2 w trybie anachronicznym i potem zatrzymać też operujac na rejestrach, ten timer. Dzięki temu możemy korzystać z pinow pc6-7 normalnie...
Mam malutki problemik z jednym z moich układów otóż watchdog tak jakby nie zawsze resetował procka i pomimo że jest włączony, program się po prostu zatrzymuje. W jednym z tematów widziałem że komus pomogła "bezpośrednia" konfiguracja tj. ustawianie bitów. Chciałbym, wiedziec jak ustawic watchdoga na 2 s, uruchomic, zatrzymać i zresetować. Próbowałem...
Może tak? [syntax=basic4gl] $prog &H00 , &H00 , &H00 , &H00 $regfile = "m32def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , E = Pinb.4 , Rs = Pinc.7 , Db7 = Pinb.3 , Db6 = Pinb.2 , Db5 = Pinb.1 , Db4 = Pinb.0 Config Pinc.2 = Input 'tego chuba nie używasz? Config Pind.1 = Input Przycisk Alias Pinb.7 'tego chuba nie używasz? 'Dołożone...
Oczywiście, zrób sprzężenie zwrotne, budowanie tablicy i pętla. zaraz ci narysuje EDIT: na przykładzie READ: Odbierasz dane (pominąłem tworzenie całego VI - konfiguracje itp), w kodzie Twoim wprowadzasz bajt stopu np. literka s (odpowiednik jakiegoś tam, ciągu bitów). Wysyłasz dane LV je odbiera i podaje dalej tworzysz tablice ze sprzężeniem zwrotnym...
Zamierzam w swoim projekcie wykorzystać funkcję "config KBD" gdyż będę potrzebował użycia dużej liczby przycisków do obsługi at32. Proszę o podpowiedź czy praca takiej funkcji, a szczególnie "debounce" i "delay" w niej zawarte nie zatrzymają timerów pracujących cały czas w przerwaniu. Z góry dziękuję za pomoc.
Pauzę można zrobić za pomocą Disable Timer1/Enable Timer1. Zatrzymanie Timera1 spowoduje również zatrzymanie odczytu z karty a więc nie trzeba dodatkowych kombinacji. Można to zrobić w przerwaniu. Np. [syntax=basic4gl] If Klawisz = 24 Then Disable Timer1 End If If Klawisz = 25 Then Enable Timer1 End If[/syntax] Stop czyli domyślam się zatrzymanie bez...
Z uwzględnieniem Twoich wszystkich rad kod wygląda następująco: [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0 , E = Porta.4 , Rs = Porta.5 Config Scl = Portc.0 Config Sda = Portc.1 Config Int0 = Falling On Int0 Pobierz_czas Enable Interrupts...
O ile kroków Wasze serwonapędy odchylają się od zadanej pozycji? podczas normalnej pracy. W czasie normalnej pracy zawsze dokładnie osiągają zadaną pozycję. Jeśli chodzi o przeregulowanie przy nagłym zatrzymaniu, to jest ono niezauważalnie małe. Nie mogę podać konkretnej wielkości - nie bardzo wiem jak to zmierzyć bez np. oscyloskopu pamiętającego....
Staram się zoptymalizować kod. W tym celu chcę sprawdzić jak szybko zostaje wykonana instrukcja wysłania 16 bitowego słowa po sprzętowej szynie SPI. W tym celu zeruje i włączam timer1 (BEZ preskalera) na początku wysyłania i zatrzymuje na końcu. Zawartość licznika TCNT1 wysyłam po UARTcie. Wynik jaki otrzymuje to zawsze 278 cykli zegara (16MHz). Ciekawi...
Ja tylko dodam dwie uwagi: 1. Oczywiście można każde dwie linie kodu (np. te, które ignorowałyby drgania styków) zastąpić przerzutnikiem czy uniwibratorem. Idąc w tym kierunku można wyrzucić mikrokontroler, wstawić kilkadziesiąt układów logicznych i mamy to samo, bez kłopotów z programowaniem. Pozostaje tylko kwestia sensowności takiego rozwiązania...
Zamieniłeś sprawdzanie INTFx na sprawdzanie zmiennych flaga i flaga1. Jeżeli już używać przerwań, to po to, by zawierały jakieś funkcjonalności np. startu i zatrzymania timera, jego odczytu oraz ewentualnie innych istotnych zadań... itp. Wtedy pętla główna powinna zawierać tylko zawartość funkcji generator(). Reszta powinna być w przerwaniach, odpowiednio...
Witam, Poniżej zamieszczam kod - przedstawia on sterowanie multipleksowe 7-seg wyświetlaczem LED - jest to lekko przerobiony kod z popularnej i znanej każdemu książki. To nie jest tak, że to ma być stoper - po prostu chciałem fragment tego kodu wykorzystać do innych celów, ale jest pewien problem. Otóż poniższy kod sprawia, że po uruchomieniu na wyświetlaczu...
Witam Mam do zrealizowania projekt, który ma za zadanie sterować PWM dwoma niezależnymi silnikami DC 24V 66W. Każdy z nich ma mieć możliwość pracy w obu kierunkach jak również w obu prędkościach. Przy zatrzymaniu mają się zatrzymywać poprzez zwarcie. Początkowo założyłem sobie sterowanie PWM tranzystorami, a polaryzacja i załączanie silników miała być...
Ten program tak nie działa - przyjrzyj rozplątanej się postaci powyżej. Jak widać z programu, odliczanie powinno się zatrzymać tylko wtedy, gdy K1 i K3 zostaną równocześnie naciśnięte (20 ms tolerancji - trudno to osiągnąć ręcznie) i pozostaną naciśnięte. Nie da się w ten sposób dobrze zrobić reakcji na zbocze, czyli na moment naciskania przycisku (a...
po zatrzymaniu odliczania chciałbym odczytać jego wartość która jest na nim wyświetlana w celu dalszej obróbki w programie Wartość licznika masz w zmiennej licznik . Wystarczy że po zatrzymaniu przepiszesz tą wartość do innej zmiennej.
Czyli jednak się da, Tranzystory NPN BC414 100mA 32 szt. Tranzystory PNP 2SA1359 3A 12 szt. Na razie każdy LED wysterowany na 14mA co mi daje możliwość zasilania nawet z USB poprzez programator i nie muszę się martwić o zatrzymanie programu i upalenie linijki. Jak wszystko zrobię poprawnie i linia nie będzie się zapalać na dłużej niż na 1/12 ms to wysteruje...
Nie potrafię dojść o co chodzi - rozumiem gdyby program zatrzymywał się na while(), ale na return()? Samo przerwanie TWINT nie oznacza, że operacja zakończyła się powodzeniem. Nie podałeś zawartości innych funkcji obsługi magistrali, ale sądząc po funkcji twi_read() nie sprawdzasz poprawności transmisji poprzez sprawdzenie jej statusu w rejestrze TWSR....
Witam Napisałem taki program do regulacji prędkości silnika. [syntax=vbnet] $regfile = "m32def.dat" Enable Interrupts $crystal = 16000000 $baud = 9600 Config Portb = Input Set Portb.1 Config Pind.4 = Output Config Porta = Input Dim Freq As Long Dim Pomoc As Byte Dim A As Integer Dim P As Integer P = 0 Config Timer1 = Counter , Edge = Falling Enable...
Bzdura. Silnik po zatrzymaniu nie ma energii kinetycznej. Serwo działa dokładnie tak jak tutaj trzeba. A ewentualne energie kinetyczne przed zatrzymaniem silnika odbiera samo. Odbiera nawet energie kinetyczne dołączonego do niego obiektu (oczywiście jest jakiś limit tej energii którą może odebrać, ale jednak do pewnej wartości ją odbiera).
To może spraedź to: No fakt tej erraty nie zauważyłem, ale po podpowiedzi kolegi zastosowałem, narazie zegarek chodzi 25 minut i jeszcze się nie zatrzymał (odpukać…) ale po testuję go jeszcze kilka dni zobaczę jak będzie mu szło. Co to jest F8?
Witam, Robię próby z uruchamianiem prostych przykladów z IDE Arduino na Atmega32 . Zatrzymałem się na pomiarze analogowym bo coś mi nie działa. Podaję na drugie wejście analogowe 0,4V i wartość z przetwornika wyświetlam na LCD. Jedna wartość ta mi nijak nie pasuje ... bo jest o 667 .. 567 .. 767 .... Podając 0.4V na wejście analogowe powinienem mieć...
Tutaj jest kod: Dodałem znaczniki syntax. Proszę ich używać, ponieważ wtedy składnia jest kolorowana, a posty są krótsze.
Witam Potrzebuje pomocy w napisaniu programu dla Atmega32 w Bascom Mam prosty układ w którym podanie masy z przycisku na pin PC0 (PINC.0) powoduje sofstart na PWM1A (PD5) od 0 255 i po softstarcie PWM1A pozostaje na wartosci 255 aż do puszczenia przycisku na PINC.0. Natomast podanie masy z przycisku na pin PC1 (PINC.0) podowduje taki sam efekt ale na...
Witam, Mam problem dotyczący odczytu danych z modułu GPS. Protokół NMEA (GGA oraz RMC). Piszę trochę w C, ale nie czułem się na tyle dobrze z obsługą tego, więc skorzystałem z przykładu. Rozumiem co dzieje się w kodzie, ale program się zawiesza lub zapętla. Wydedukowałem, że problemem jest pętla for w funkcji get_gpstime(). Tak jakby kontroler nie rozpoznawał...
wszystko robilem wg. opisu na programowalem fusebity i bylo ok po drugim nacisnieciu "program" zmienily sie fusebity w trzeciej linijce ale zmienilem wg rysunku i dalem "program" nastepnie podalem sciezke do programu Flash i poleciało... zatrzymalo sie i od tej pory juz nie widzi procesora pomocy !!!!
Witam Dziekuje za odpowiedź. Wiem ze tym nie mierze pradu narazie ale od czegoś musiałem zacząć. Pomiar prądu min 90mA do 1A większych prądów nie przewiduje nawet przy całkowicie obciązonym(zatrzymamym) silniku. Precyzja wiadomo kazdy chce jak najlepszą ale mi wystarczy na poziomie +/-5mA. Pomiar wystarczy co 0,5 sekundy, częstsze sprawdzanie nie wydaje...
Dziękuję serdecznie za podpowiedzi koledzy. Debugowanie własnie u mnie odbywa się przez uarta, ale portem też sprawdzę dla pewności. Generalnie to po ten operacji zatrzymania timera zostaje wykonana masa innych zadań, jednak kod przyciąłem dla czytelności. Dodam że program działał dopóki nie oddałem tej obsługi przerwania, więc do reszty kodu nie mogę...
Witam Mam problem polegający na tym, że potrzebuje napisać program, który po odczytaniu stanu niskiego na pinie np. pinb.0 utrzyma ten stan przez ok. 2 sekundy. Wygląda to tak: Mam diodę nadawczą i fototranzystor podlączony do pinu procesora. Gdy sygnał z diody nadawczej dociera do fototranzystora to procesor odczytuje stan wysoki. Gdy coś przerwie...
Witam, Czy może mi ktoś pomóc... Atmega32 + PCF8583 - programowane w Bascomie. Na wyświetlaczu po podłączeniu pojawia się taki tekst: Godzina: 0:8:39 Data: 1-1-0 : 0 I wszystko jest zatrzymane - nie zmieniają się ani sekundy ani minuty ani godziny. Dlaczego? Poniżej zamieszczam kod programu: [syntax=basic4gl]$regfile = "m32DEF.DAT" $crystal = 8000000...
Jest to raczej sprzęt dla fanów atmegi ;) Z punktu widzenia ekonomii nie ma wielkiego sensu. Stosując elementy smd oraz inny mikrokontroler można zrobić sprzęt i lepszy i tańszy. A części użyłem jakie miałem na stanie. Właściwości : - 1,2,4 kanały analogowe min (max 100,50,20 ksps) pasmo ok 40 kHz rezystancja ok 2Mom - 1 kanał z wejściem różnicowym,...
Witam koleżanki i kolegów. Kiedyś zbudowałem taki zegarek teleekspresu na podstawie kitu Nord Elektronik. Posiada on następujące wady: 1) Spieszy około 2 - 3 minut na tydzień (brak jakiegokolwiek RTC) 2) spory pobór prądu (o 08:08:59) wartość => 300mA 3) efekt wiatraka - diody są zapalane dynamicznie na zasadzie matrycy i widać jak po 15 sztuk wygasa...
Po podaniu 9V uklad juz odrazu zaczyna dzialac ale diody led slabiej swieca, wcisniecie przycisku rozjasnia je. Zapewne tranzystor "przepuszcza" zasilanie. Moze to wina typu BC847 - smd. Pisałem o tym wcześniej, ale można to obejść. ;) Rysunek uproszczony Tutaj jednak wyłaczenie nastąpi, gdy na wyjściu układu pojawi się stan wysoki (choć to też można...
Witam. Pracuję nad dużym projektem wykorzystującym moduł GSM do wysyłania parametrów mierzonych poprzez mikrokontroler Atmega32. Zatrzymałem się na etapie połączenia modemu ZTE MG3030 do sieci GSM. Problem jest taki, że urządzenie nie wykrywa włożonej karty SIM. Na początek połączyłem się przez komputer, układ konwertujący napięcia MAX3232 do modemu...
Dzieki za pomoc. W koncu ruszylo. Bez informacji o COM1A0 bym sobie nie poradzil. Dla potomnych caly dzialajacy kod. 8Mhz, atmega32. Wzor na czestotliwosc jest w nocie katalogowej. Migajaca dioda co 1s. #define CLK_LED PD5 nalezy zmienic na #define CLK_LED (1<<PD5) !!!!! [syntax=c]#define CLK_LED PD5 nalezy zmienic na #define CLK_LED (1<<PD5)...
Od kilku lat programuję 8-bitowe mikrokontrolery AVR i przez ten czas zdobyłem trochę wiedzy na ich temat. Poniżej znajduje się kilka ciekawostek o tych układach. Jeśli znacie jakieś inne interesujące informacje, to piszcie. Najnowsza wersja artykułu jest również dostępna na mojej stronie: 1. Rozpoznawanie wersji (rewizji) Wersja (rewizja) mikrokontrolera...
zrobiłem tak: Atmega328 - Master Do Config Serialin = Buffered , Size = 24 Enable Interrupts If Ischarwaiting() = 1 Then ' sprawdź czy jest jakiś znak do odebrania w buforze lub HW UART Gosub Odczyt_rs End If '***************************** wysyłanie żadania danych do modułu 001 If Flaga_001 = 1 Then Set Re_de Waitms 2 Print "MOD001"...
Po przyzwyczajeniu się do pracy na komputerze klasy Tablet-PC zapragnąłem dodać interfejs 'rysikowy' do swojego komputera roboczego. Dróg do celu jest wiele, ja wybrałem gotowy ekran z laptopa T5010 plus dwa niezbędne konwertery sygnałów: TSUMv59 dla LCD i WaxBee (Pro Micro) dla digitizera. Głównym elementem mojego tabletu jest ekranu LCD odzyskanego...
Witam ! To ja może z innej beczki :) Zakupiłem jakiś czas temu silnik od hoverboard o mocy chyba 250W 36V. Posiadam też chiński sterownik BLDC 500W 36V. Podłączyłem te dwa wynalazki ze sobą i zasiliłem źródłem napięcia 39V i prądzie 2A..Co się jednak okazało to to, że silnik na wolnych obrotach głośno chodzi, cały drży i po zatrzymaniu go ręką nie chce...
Autor poniższego projektu pracuje dla Delphi (niebawem Aptiv) i ma dostęp do najnowocześniejszych systemów, które wykorzystywane są do tworzenia nowoczesnych gadżetów. Niedawno jeden z jego współpracowników opowiedział mu o tym, że systemy rozpoznawania gestów są jednym z najnowszych trendów w motoryzacji. Sprawiło to, że zaczął się zastanawiać na...
Witam. Jak w temacie zlecę zaprogramowanie Arduino UNO R3. Sterownik ma obsługiwać licznik/sterownik impulsów. Skład zestawu: Arduino: ARDUINO UNO R3 ATMEGA328 CH340 AVR KLON MODUŁ Ewentualnie: Arduino UNO R3 ATMega328 100% zgodność + kabel USB Wyświetlacz z klawiaturą: MODUŁ SHIELD WYŚWIETLACZ LCD 1602 KEYPAD ARDUINO Modół przekaźnika: Moduł 1-kanałowy...
Jak niedawno zapowiadałem, prace nad projektem efektora do miksera Behringer DJX700 praktycznie zostały zakończone. Na chwilę obecną mam działający układ wraz z devboardem i ukończone programy efektów. Ale po kolei. O samym procesorze FV-1 możecie poczytać w innych moich tematach; konkretnie to Idea jest bardzo prosta. Skoro procesor nie posiada żadnej...
Witam napisze coś w tym temacie . No cóż nie wiem jaki masz obiekt duży itd. Jeśli prowadzisz uprawę całoroczną odpuść sobie to rzeczywiście zobacz ofertę Labela lub Fancom. Cena to około 4tys +czujnik pomiaru CO2 więc następny min 1tys. Jeżeli masz kilka/kilkanaście hal to ceny spadają powodem jest to że np czujnik CO2 jest jeden a powietrze doprowadzane...
Witam, mam kilka pytań odnośnie Real Time Worshop i Real Time Workshop Embedded Coder. Może najpierw napisze co chce osiągnąć. Mianowicie mam schemat sterowania silnika zrobiony w simulinku - model silnika przybliżany jest nieliniowym równaniem matematycznym w dziedzinie s, natomiast sterownikiem jest regulator PID, a wartością którą sterujemy jest...
Witam. Dzisiaj prezentuję mój ostatni projekt, którym jest samochodowy GPS Logger. Układ powstał z dwóch powodów: Pierwszy powód - parę tygodni temu udałem się na opolską giełdę i na jednym ze stoisk trafiłem na odbiornik GPS firmy JENTRO model SC-GPS-1 - zapłaciłem za niego dosłownie 5zł :D Drugi powód - zbliżający się wakacyjny wyjazd moich rodziców....
Przesądy... ;) Nie "jak najszybciej" a "odpowiednio szybko"; np. jedyne w systemie przerwanie zgłaszane co 100 us może być obsługiwane przez 99 us i wszystko będzie ok. Toć napisałem: Dlatego z reguły przerwania powinny wykonywać się możliwie jak najszybciej ... Wiem, że mikrokontroler (w moim przypadku Atmega328) nie może wykonywać dwóch fragmentów...
Wykorzystałem do sprawdzenia kod: #include <avr/eeprom.h> int main() { unsigned char x = eeprom_read_byte((unsigned char*)10); if(x <= 0xFA) // jeżeli osiągnie FA to znaczy, że się restuje { while(1); // wystarczy już zapisów ;-) } eeprom_write_byte((unsigned char*)10, x-1);...
Może i Atmega32 to za dużo, ale za to ma JTAGa. Możliwość zatrzymania w dowolnym momencie programu i podejrzenia zawartość rejestrów oraz pamięci znacznie przyspieszy wyłapywanie błędów. Najprościej zastosować termometry DS18B20 wpięte wszystkie razem do jednej magistrali.
Witam, Zacząłem przepisywać soft swojego projektu z Bascoma na C i zatrzymałem się na etapie tworzenia procedur obsługi TWI. Zaczynam dopiero przygodę z C, więc wybaczcie że pytam być może o rzeczy oczywiste. W projekcie używam procka ATMega32 oraz przetwornika ADC 16bit ADS1100 i o ile w Bascomie odczyt zawartości rejestru wyjściowego przetwornika...
hmm... Czyli jeśli dobrze zrozumiałem, tworzę zmienną tablicową, np. char bufor[100], dłuższą od najdłuższej linii, którą chce odczytać, a następnie przy każdym następnym przerwaniu wczytuję wszystkie odebrane znaki, kolejno do tej tablicy, aż napotkam znak '\r' lub podobny, tak? Ale co w sytuacji, gdy nim przetworzę dany ciąg znaków, i wyczyszczę bufor,...
Kolega Duch__ ma rację, czujniki DS18B20 i DS1631 różnią się w sposobie komunikacji. Nic nie stoi jednak na przeszkodzie, aby zmodyfikować schemat i dodać obsługę 1Wire. W końcu to tylko jeden rezystor podciągający i jeden dodatkowy port µkontrolera :) Wykorzystałem układy na I2C z powodu ich mniejszej podatności na zakłócenia transmisji (głównie...
Kolego tmf, dziekuję za rady. zbieram po prostu opinię. Natomiast odpowiedź że są szybsze procki to ostania rzecz której się spodziewałem. Wiem że to nie miejsce i czas bo dyskusje o tym co lepsze toczą się tutaj od wieków i toczyć się będą dalej. Ale ostatnio robiłem przymiarkę do jakiegoś ARM-a i poległem we własnych rozwarzaniach. Bo jak trafiłem...
Przerobiłem trochę program z książki "Mikrokontrolery Avr W Praktyce" (Doliński) w taki sposób, by napięcie mierzone było wyświetlane na wyświetlaczu LCD. Używałem modułu uruchomieniowego ZL3AVR wyposażonego m.in. w mikrokontroler Atmel ATMEGA32 16PU, wyświetlacz LCD HD444780 2x16 oraz 16-sto przyciskową klawiaturę. Układ podłączyłem jak na rysunku:...
Witam. Założenia zasilania : 1. Silniki do rolet oryginalne z własnymi wyłącznikami krańcowymi. 2. W każdym pokoju niestabilny przycisk do sterowania lokalnego + przycisk przy drzwiach wyjściowych. 3. Całość zabudowana we wnęce wykonanej w ścianie - na zewnątrz widać tylko wyświetlacz i trzy przyciski sterujące. 4. Do tego samego miejsca doprowadzone...
Witam. Chciałem wam przedstawić mój najnowszy ukończony projekt jakim jest kostka LED 4x4x4. Niestety na forum jest mało takich projektów, a ja usilnie chciałem mieć taką kostkę, aby była bezpośrednio połączona z płytką. (bez plątaniny przewodów na płytce uniwersalnej). Trafiłem na stronę , z której udało mi się zdobyć wiedzę, materiały i ogólną ideę...
Witam ! Tak to są przelotki - mini nity. Jak najbardziej się sprawdzają. Nie widzę innej możliwości zrobienia domowym sposobem przelotek pod np. Atmega32 SMD niż za pomocą nitów 0,4/0,6 czy ewentualnie 0,6/0,8 Mam prośbę do Kol. rsikon , by napisał coś więcej o głowiczkach do zaciskania tych nitów i sposobach ich zaciskania. Ciekawi mnie to , ponieważ...
Zastosuj sterownik PCF8576, może wysterować do 40 segmentów w trybie statycznym. Do kupienia w cenie około 6PLN. Pozdrawiam JarekC To już jest kusząca propozycja. Dwa scalaki załatwia sprawę. Rozpatrywałem też CPU 100pin (wymiary obudowę takie same jak 64 pin). AtMega3250 kosztuje w granicach 21..25 zł netto. Jeśli użyje 9 (na upartego 8, rezygnując...
Zakupiłem biblioteki Pana Mirka Kardasia do obsługi SPI oraz dla modułu MkNRF24L01. Chcę używając ich skonstruować pojazd/zabawkę zdalnie sterowany. Myślę że bardziej doświadczeni będą potrafili odpowiedzieć na pytania. Skupię się początkowo na samym SPI. Korzystam z tutoriala
Dzięki za podpowiedzi, ostatnio potrzebowałem zmodyfikować firmware w dość starym rozwiązaniu na ATMega32, kod pisany dość dawno, występowały problemy więc pomyślałem, że to doskonały moment na debugowanie inaczej niż print na UART. Podłączyłem MPLab SNAP do JTAG i... nie działa. Podłączyłem SNAPa do ISP i okazało się, że nie jest włączony fusebit JTAGEN....
witam w prostym programiku ktory napisalem pojawil sie nietypowy problem i nikt nie potrafi wytlumaczyc dlaczego sie tak dzieje. mam nadzieje ze tutaj znajde odpowiedz :) program przedstawia sie nastepująco: TCCR1A = 0x00; // T/C1 w trybie czasomierza TCCR1B = 0b00001101; //preskaler 1024 OCR1A = 0xD8; //ustawienie przepelnienia TIMSK = _BV(TOIE1)|_BV(OCIE1A);....