Przy instrukcji Input "odebranie znaku <CR> (kod 13) kończy wprowadzanie danych dla bieżącej zmiennej." A co jeśli znak <CR> nie zostanie nadany? Wtedy program stoi i czeka!
Musisz zastosować przerwania. Poczytaj o przerwaniu np INT0. Ustaw na reakcję zboczem opadającym. Sygnał który chcesz odebrać daj na któreś z wejść INTn np na INT0, a w obsłudze przerwania robisz co chcesz. Wtedy nie stracisz żadnych sygnałów .
Witam jeszcze mam małe pytanko jeśli chciałbym dokonać resetu tej pętli z opóźnieniem 500ms, gdy licznik zostanie zatrzymany.
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...
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ć.
Jest teraz softstart i czeka na wartosci 255 az zostanie puszczony przycisk Kod wyglada tak: [syntax=basic4gl]W = Getadc(0) / 3.4 W = W - 40 If Pinc.0 = 0 Then For A = 10 To 255 Pwm1a = A Waitms 10 Next A Do Loop Until Pinc.0 = 1 Else Pwm1a = 0 End If [/syntax] "W" to potencjometr podłaczony do ADC - po przeliczeniu wartos od 0 do 255 W momencie nacisniecia...
Witam Na początek to //Porty: PC0(SCL) PC1(SDA) -> wejścia TWI DDRC =0b11111110; PORTC =0b11111101; skoro porty PC0(SCL) PC1(SDA) to wejścia TWI , ja bym je ustawił tak //Porty: PC0(SCL) PC1(SDA) -> wejścia TWI // 1 -> wyjście // 0 -> wejście DDRC =0b11111100; // 1 -> z podciągnięciem do VCC (pull-up) // 0 ->...
Nie. Działa tylko ze sprzętowym.
Działa ;-) Ustaw Breakpoint na linijce (prawy myszy Toggle Breakpoint) [syntax=avrasm]com LED[/syntax] 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. Zamiast 15625 ładuj do OCR1A 15624. Wieczorem wrzucę inny sposób migania tym...
Oczywiście, zrób sprzężenie zwrotne, budowanie tablicy i pętla. zaraz ci narysuje EDIT: http://obrazki.elektroda.pl/2541486700_1... 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...
szczywronek umieśiłem pętlę while(a == 2) w pętli while(1) i niestety nie pomogło. Analizuję jeszcze kod w poszukiwaniu błędów. Dodano po 5 Problem rozwiązałem. Przyczyną były komendy break;. Pytanko jeszcze takie małe. Jak zrobić, żeby tego napisu menu nie wyświetlało, gdy wyświetla inne wartości? Wiem, że przyczyną jest to, że to cały czas krąży w...
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...
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ć...
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....
Ponieważ pokazałeś fragmenty kodu więc może nie do końca prawidłowo go przeanalizuję. Problem polega na tym, że odczytany w przerwaniu pomiar zapisujesz do tablicy w pętli for kilka razy zanim nastąpi ponowne przerwanie z ADC. //pomiar********************************... for(int x=2; x<157; x++) { bufor[x]=adc;...
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...
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ć.
Wypróbuj ten kod: [syntax=c] #define F_CPU 16000000 #include <stdlib.h> #include <avr/io.h> #include <util/delay.h> //-------LCD------------------------ #define LCD_ADDRESS (0x7C) /* * LCD_commands */ #define LCD_CLEARDISPLAY 0x01 #define LCD_RETURNHOME 0x02 #define LCD_ENTRYMODESET 0x04 #define LCD_DISPLAYCONTROL 0x08 #define LCD_CURSORSHIFT...
Niestety problem znów się pojawił: Program nie wchodzi do pętli while, gdzie warunek jest niespełniony dopiero po zatrzymaniu dopiero co ustawionego rejestru licznika, próbowałem jeszcze inny sposób, z bitami zmiennej flag ustawianymi w przerwaniach - do przerwania wchodzi, ale jak wróci do programu to nie wychodzi z pętli - tak jakby warunek był cały...
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ć.
Tak jak w tłumaczeniu języków nie da się lub nie trzeba/nie powinno trłumaczyć dosłownie tak i programowaniu dosłone tłumaczenie najczęściej nie jest optymalne. Dlatego proponuję [syntax=c] //$regfile = "m32def.dat" ' procesor //$crystal = 8000000 'kwarc //powyższe ustawić w IDE uint8_t I; //Dim I As Byte ' zmienna I DDRA = 0xFF;//Config Porta = Output...
bo faktycznie się zatrzyma co? chłopie popracuj nad składnią C PS. po co włączasz przerwanie?
Silnik będzie miał swoją energię kinetyczną jak go zatrzymasz. Do tego stosuje się silniki krokowe jak kolega poprzednio podpowiedział. Żadna bzdura.
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
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...
To może spraedź to: https://atnel.pl/i2c_twi_lib_stop_error.... 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?
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.
... zgodnie z dokumentacja do Atmegi328 Tabela 15-5 mówi że wyzerowanie bitów CS12:0 powoduje zatrzymanie Timera. Rozumiem że to nie wystarcza w moim przypadku. Wystarczy, ale nie zerujesz bitów CS12:0 tym fragmentem programu. Podstawy C: http://mikrokontrolery.blogspot.com/2011...
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.
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...
Może spróbuj sterowania w inny sposób - za pomocą przerwania INT2 (wywoływanego przyciskiem) uruchamiaj i zatrzymuj licznik TC0 (parametry PWM są ustawione u Ciebie poprawnie) tzn ustawiaj bity TCCR0|=(1<<CS00)|(1<<CS01) kiedy chcesz uruchomić licznik i zeruj je jeżeli chcesz zatrzymać. Samo ustawianie wartości wypełnienia czyli rejestr...
A nie lepiej w programie głównym inicjalizować wskaźnik, wpisywać do zmiennej długość bufora i uruchamiać Timer. A w przerwaniu walnąć to: ISR(TIMER1_COMPA_vect) { OCR1A = pgm_read_byte(*odz++); // przepisuję wartość do rejestru sumz--; if (Pierwszy_komunkat == 0) { if (sumz == 0) { sumz = Dlugosc_drugiego_komunikatu;...
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.
Tak oczywiście ale człowiek chce czasem podejść do rozwiązania z innej strony. Czyli z d.... strony. Jak mam jakiś "doskonały" pomysł, to sobie myślę, że pewnie przede mną wiele mądrzejszych ludzi nad tym kombinowało i coś sensownego wykombinowała, wystarczy tylko poszukać jak to zrobili... A zrobili prosto i w miarę skutecznie - to się nazywa lockbity....
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.
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...
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...
Prubuj tak: [syntax=c] GLCD_Bitmap(&HOME,0,0,24,24); [/syntax] A co do drugiego warninga to masz po prostu w makefile zadeklarowane F_CPU i w programie też. Usuń z programu, a ustaw w makefile. Ale ten błąd nie jest powodem zatrzymania kompilacji tylko ten drugi. Jeśli nie zadziała, to pokaż kod funkcji GLCD_Bitmap.
Ź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ść...
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...
Nie rozumiem czemu w Twoim kodzie sumujesz dwa odczyty: Nie sumuję :) Poza tym nie mógłbym uruchamiać timera w momencie pierwszego zbocza(opadającego) a zatrzymać a następnie go zerować jak nastapi drugie zbocze(narastające) ? Wszystko zależy od Ciebie. Możesz kombinować na wiele sposobów w zalezności od dokładności pomiaru jaką chcesz uzyskać oraz...
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...
Timer 2 ma ustwienia prescalera na 1 i rejestru porównawczego na 7 Zacznijmy od tego: timer w trybie CTC, preskaler 1, OCR2A=7, czyli przerwanie co 8 taktów zegara, a ile taktów trwa procedura obsługi tego przerwania? Samo wejście i wyjście z procedury zajmuje więcej czasu.
Jak znajdę czas (studia) to zacznę pisać program do wrzucenia hex-a, chyba, że program już jest napisany... to bym go chciał przeportować do Javy :) Nie wiem czy będzię to wadą, ale programuje w Javie i tylko w tym języku będę mógł się na ten temat wypowiedzieć... ATMega8 to już i tak zabytek i warto o nim zapomnieć. Ja na studiach poznaje dopiero '51...
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...
Czyli wyłączenie WatchDoga jest na takim samym poziomie bezpieczeństwa jakie zapewnia sam WatchDog, bo zawsze można wyobrazić sobie takie działanie programu że WatchDoga jest kasowany a jednak program nie działa zgodnie z naszym zamiarem. Jak dla mnie prawdopodobieństwo tego, że program wpadnie w pętlę, w której będzie w sposób nieuprawniony resetował...
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...
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ę...
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...
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...
(at)stozek - normalnie w Bascom nie jest potrzebna komenda Start Timer0 bo jest on uruchamiany od razu podczas konfiguracji. Używa się tej komendy tylko jeśli poprzednio zatrzymałeś Timer poprzez Stop Timer0. Rozumiem, że zatrzymujesz timer. Tak więc zatrzymywanie timera to zabranie mu źródła taktowania. Bascomowe komendy moża wiec rozumieć tak: Start...
Akurat Propox sprzedaje bodaj tylko takie płyty, nic jednak nie stoi na przeszkodzie, aby do owego pola podlutować kabelki i wpiąć je w stykową płytkę ;) Co do płyty... taniej niż w Propoksie chyba nie znajdziesz, a ich produkty są naprawdę wysokiej jakości. Jest jeszcze inna alternatywa... znacznie bardziej elastyczna (spośród płyt, skoro już się w...
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...
i potem zatrzymać też operujac na rejestrach, ten timer A czy można owy timer[2] wykorzystać do odbioru kodów w standardzie RC5, bowiem inne liczniki mam zajęte? czy raczej będzie to utrudnione?
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)...
Witam. Czy możliwe jest zawieszanie sie procesora poprzez stycznik który jest oddalony około 15 cm w innej obudowie .Stycznik służy do sterowania silnikiem 1.1kW. A może ma wpływ na działanie kwarca zew.? Dzieje się tylko podczas wyłączenia się pompy po zadanej jlości lub ręcznym zatrzymaniu . Podczas włączania pompy tego objawu nie ma . Może silnik...
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...
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....
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....
Więc tak dla zupełnej pewności podpiąłem zakurzony usb-rs-485 i sprawdziłem, nawet przy transmisji 230400 bez żadnego delaya w sekcji nadawania z bazy REALTERM bez problemu odczytuje wszystkie dane. Czyli problem musi być po stronie odbierania. daj opóźnienie ok 10ms. Ja walczę z opóźnieniem rzędu 2ms a ty proponujesz 10 ?? nawet bez sprawdzania wiem...
Chciałem aby po odliczeniu od 0 do 10 licznik zatrzymał się na 10 i cały czas wyświetlał 10 aż do resetu procesora. I prawdopodobnie tak właśnie ten kod działa. Odlicza, resetuje, odlicza, resetuje itd. Swoją drogą kod fatalny - strach pomyśleć, ile linii miałby tak napisany kod, który miałby odliczać do tysiąca...
Aha wielkie dzięki Kłopot z zasilacze rozwiązałem zmieniłem program i chodzi dobrze ale jeśli tak jak ty mówisz że przekroczyłem te wartość to coś dziwnego czy krokowy by miał max taką szybkość? Dodano po 7 Mam kolejny kłopot silnik okręca się o ok. 4 obroty i zwalnia ale niestabilnie, drży aż zatrzymał się a mostki H parzą. Co może być przyczyną??...
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...
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....
Też aktualnie cos takiego konstruuje na atmega16, pcf8583 i LCD od nokii. Mam juz poprawne odczyty prędkości chwilowej, maksymalnej, średniej oraz przebytej drogi, temperature i takie tam. Przede mną jeszcze pomiar zużycia paliwa i tu się pewnie zatrzymam na dłużej, bo mam LPG 2 gen. Jeśli chodzi o pomiar drogi i prędkości to skoda 1,3 nie miała przetwornika...
Czy z tą diodą to tak? : Dokładnie TAK. Całość może wyglądać jakoś tak: http://obrazki.elektroda.net/91_12777959... Układ nie był sprawdzony w praktyce . C1 dobrać jako kompromis między czasem reakcji detektora zaniku, a odpornością na chwilowe zaniki (zakłócenia) nie powodujące zatrzymania układu. Rezygnując z tej pojemnosci otrzymamy przerwanie...
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...
[syntax=c]for(uint8_t index = 0;GGA_Buffer[index]!=','; index++){ ///nie potrafi się zatrzymac na przecinku Time_Buffer[time_index] = GGA_Buffer[index]; time_index++; PORTA |= (1<<PA2); //DODANE }[/syntax] 1) Szalenie ryzykowna pętla, gdy przyjdzie jakiś inny string bez przecinka lub ciąg znaków do przecinka przekroczy wielkość bufora Time_Buffer,...
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...
Reset ma dwie funkcje: jeśli jest w stanie wysokim, to uC wykonuje kod, jeśli jest w stanie niskim, to uC jest zatrzymany, ale może wejść w tryb programowania ISP. Co do kondensatora 1uF do +5V - raz, że procek startuje wtedy, kiedy napięcie na resecie jest porównywalne do vcc (kond jak już, to powinien być pomiędzy resetem oraz gnd), dwa, że brakuje...
Nie ma bata. Z ds na 1wire i multiplexem led musi mignać. I nie słuchajcie zadnych zapewnień że "mi nie miga". Napewno miga. rygory czasowe w ds to są us (mikrosekundy) i nie ma takiej możliwości żeby bascom się wyrobił. Rozwiazanie? Zacząć stosować czujniki na I2C zamiast 1wire. Transmisja moze być całkowicie zatrzymana i nic to nie przeszkadza. Do...
Powyzsze kawalki kodu to proszenie sie o buffer underrun... i niezawodnie to nigdy dzialać nie będzie. Rozwiązaniem jest FIFO Każdy bufor cyklicznie odczytywany jest FIFO. Co za różnica czy będziemy mieli za szybki zapis do bufora czy za szybki z bufora? To jest audio, musi zapewnić ciągłość, teoretycznie nie możemy sobie go na chwile zatrzymać jak...
Układ już który opisywałem jest w trakcie realizacji, jednak mam do Was pytanie. Zależy mi też na tym aby możliwe było zatrzymanie silnika. Ma on taką możliwość poprzez zwarcie styków. Jednak układ omawiany ma tylko możliwość polaryzacji bez dokonywania zwarcia. Mogę sterować każdym tranzystorem niezależnie, jednak są dwa silniki więc 8 tranzystorów,...
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...
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ł...
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....
Napotkanie Inkey() powoduje zatrzymanie pracy programu aż do odczytu znaku z bufora UART.
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...
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ć?
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
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ę...
Obydwa moduły leżą obok siebie, więc temperatura ta sama. Nie mam czym zmierzyć i nie mogę wymienić kwarców, są za małe i nie przelutuję ich. Zresztą nie wiem czy bym takie dostał. Po za tym to chyba nie w tym rzecz. Te moduły mają funkcję Automatic Freqency Control, która dostraja częstotliwość odbiornika do częstotliwości nadajnika. Próbowałem ustawień...
Witam! Wrzuciłem niedawno temat odnośnie driverków do mosfet. Tamten problem został już rozwiązany, zatem dziękuję :) Udało się ruszyć silnik. Po podaniu kolejnych kroków na poszczególne fazy(z odstępem czasowym przełączania ok 2ms) i zdrowym zakręceniu silnika- obraca się sam, dopóki się go nie zatrzyma. Czyli klucze działają. jest to silnik synchroniczny,...
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...
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...
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)...
To zacznijmy od silnika. Ja osobiscie nie dawał bym jakiegoś silnika wysokiej klasy, ponieważ pare złotych kosztuje a jeszcze chcesz miec naped jak w czołgu a wiec trzeba bedzie dwa takie silniki i koszty rosna, najlepiej poszperac na allegro am jest duzo aukcji roznego typu silnikami z demontu i za grosze mozna kupic całkiem dobre silniki. dla przykładu...
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...
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...
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ść. ;) http://obrazki.elektroda.net/6_124552463... Rysunek uproszczony Tutaj jednak wyłaczenie nastąpi, gdy na wyjściu...
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...
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...
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ż...
No to może się nie uruchamia przerwanie?:) Próbował kolega w procedurze obsługi przerwania zmienić coś z diodami i się zatrzymać wtedy? (Test czy się wywołuje przerwanie). B.R. Dodano po 4 Poza tym, spróbował bym ustawić ddrb&=0xfe (0 na pb0). Und upewnić się, czy na pewno jest "sprzętowe" połączenie przycisku taktującego z uC:).
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...
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...
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...
... 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...
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...
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...
zatrzyma wirowa zatrzyma wydruk zatrzyma timer
sharp migające podświetlenie peugeot boxer kluczyk czcionka chrome
schemat jednokreskowy instalacji regulator napięcia prądnicy
Thomson CS96 – jak dodać wejście AUX z regulacją głośności? Instrukcja montażu Parkside Performance – długa głowica do szlifierki, przedłużka wrzeciona M14, modele PWDS 920 B2, PPWSFA 20-Li B3