1.Każdy Timer działa niezależnie- to jest licznik sprzętowy działający jak zewnętrzny układ. To że został "wsadzony" w układ scalony OBOK procesora to tylko żeby użytkownikom było wygodniej. Dlatego nazywa się to "układem peryferyjnym", peryferiami itp. Takich "układów peryferyjnych" w mikroprocesorach jest dużo. Nie tylko liczniki ale też przetworniki...
To ja przepraszam. Kolega ma dobrze schemat. Taki błąd zrobiłem jak się zaczynałem bawić z CAN, dopiero koledzy z Elektrody mnie poprawili. Za dużo ostatnio robię z UARTem ( odbiór GSM ). Kolega robi magistralę do domu, czy zamierza sczytywać dane z samochodu ? Jeśli to drugie to gorsza sprawa, bo producenci samochodów mają swoje implementacje. Jeśli...
http://obrazki.elektroda.pl/1899461000_1... Ostatnio zaprojektowałem na potrzeby dyskoteki switch DMX. Wykonałem 8 sztuk, jak na razie pracują bez zarzutu. Nie publikuję płytki, bo wymaga dopracowania, a nad publikacją wsadów i źródła się zastanowię. Co do PCB, to i tak zaraz dostaną mi się pewnie słuszne baty za zbyt małe odstępy części...
ok dzieki + 10 pkt
Zauważ, że po ustawieniu PORTD = num[4] nie masz żadnego oczekiwania, czyli od razu po tej intrukcji wykonuje się PORTD = num[1]. Koniec końcem będziesz widział tylko tę wartość.
Switch powinien być podłączony do masy, jeżeli nie dajesz zewnętrznego rezystora wymuszającego niski poziom na wejściu procka. Atmega posiada wewnętrzne rezystory podciągające do +5V dlatego lepiej aby stanem który jest wykrywany był stan niski switcha.
Switch musiałby robić za bramkę logiczną między dwoma układami - LED solo lub urządzenie solo.
Podręcznikowy przykład to jest taki, że zwierasz switcha do GND a nie do VCC. Za to rezystor wykorzystujesz do podciągnięcia linii do VCC. Można też pominąć rezystor i podciąganie włączyć programowo poprzez wystawienie jedynki na ten pin gdzie masz switch. A w warunku badasz czy jest ZERO a nie JEDEN jak w tej chwili.
Włącz podciągnięcie przycisku do plusa zasilania PORTB |= (1 << PB1).
1. Przerwanie ADC (zapewne w ogóle zbędne) zżera b. dużo czasu na niepotrzebne obliczenia zmiennopozycyjne - moim zdaniem to jest główny błąd w programie. 2. Bezsensowny switch w obsłudzie odbioru UART. 3. MyDelay w przerwaniu UART - po co? W przerwaniu się nie czeka.
Lub przekaźniki półprzewodnikowe; CD4066
Wszystko co trzeba jest w dokumentacji: 1. Zmiana kanału: When changing channel selections , the user should observe the following guidelines to ensure that the correct channel is selected: • In Single Conversion mode , always select the channel before starting the conversion. The channel selection may be changed one ADC clock cycle after writing...
1. Odepnij od procesora wszystko poza programatorem; 2. Sprawdź ustawienia dip-switch/zworek (jeśli są); 3. Zrób uczciwy ChipErase[F8] i od razu zaptaszkuj "Erase chip before flash programming"; 4. Odczytaj FuseBity i je pokaż; 5. Jeśli ten programator jest z czymś zgodny, to pokaż również wartości odczytane przez AVRStudio.
Jedno bez zmian drugie sypie błędami ....... a może skasuj wszystko do switch (lcd_menu) i poukładaj to na nowo ........
Wcale się nie upieram, że układ programatora nie działa w takim stanie jak jest, tylko jakbym miał taki u siebie :), to bym przerobił układ, aby był zasilany z innego źródła niż LPT, np. z dostępnego zasilacza, z oddzielnym przełącznikiem zasilania i sygnałów, aby to nie kolidowało z projektowanym układem, miałoby to jeszcze jedną zaletę - przełączamy...
Witam, mam problem jak wykonać projekt, który będzie odbierał / wysłał informację z Arduino na Atmegę 328p-pu zamieszczam opis: Elementy zestawu: Arduino 2560, Atmega 328, dioda, switch. chciałbym zrobić coś takiego: zostaje wciśnięty przycisk sygnał został wysłany do Atmegi a poźniej ona wysyła sygnał do Arduino informację, że został wcisnięty przycisk,...
No nie bardzo. Pętle busy waits są w przerwaniu niewskazane. Zrób tak jak napisał (at)BlueDraco : odczyt poprzedniej konwersji-start następnej konwersji-wyjście bez czekania. [syntax=c]ISR(TIMER1_COMPA_vect) { switch(wejscie) { case 2: adc3=ADC; ADMUX = 0; ADMUX = (1<<REFS0)|wejscie; ADCSRA |= (1<<ADSC); break; case 3: adc2=ADC; ADMUX =...
Witam Uruchomiłem kod z książki tmf`a do obsługi i2c w avr jako slave. Problem w tym, że o ile przesłanie pojedynczych danych działa doskonale. To jeżeli chcę przesłać dane na podstawie odebranej wartości to bit TWDR przyjmuje wartość adresu odbioru, a master zawiesza się. Przerwanie: [syntax=c]ISR(TWI_vect) { uint8_t status = TW_STATUS; switch(status)...
Działanie programu zaraz po napisaniu jest rzadkością, dlatego wymyślono testowanie. Program robiący więcej niż jedną prostą rzecz testuje się w taki sposób, że każdy element sprawdza się oddzielnie, a następnie integruje się całość dodając kolejne funkcjonalności (jak składanie z klocków lego) testując jednocześnie aktualnie zbudowaną całość. W rozwiązaniu,...
Rezystory podciągające przy switch-ach są potrzebne jak piąte koło u wozu. Wystarczy podciąganie pinów. Diody bym dał schottkiego- mała różnica w cenie a są szybsze. Jednak jest to indukcyjne obciążenie.
Dlatego trzeba dokładnie czytać DS. Output switch current to nie jest to samo co Output continuous current. W zasadzie z tymi DS to jest jak z politykami- kłamią. Tylko w bardziej subtelny sposób. Jak się wczytasz dogłębnie to nie ma się do czego przyczepić.
tak jak pisałem nie podłączyłem tych diód, nie zdawałem sobie sprawy z tego że trzeba podłączyć osobo (płyta w szkole musi mieć pewnie styki zlutowane już na stałe, stad w jakiś stopniu w ogóle nie myślałem że będę musiał to zrobić, ale dużo mnie to nauczyło, teraz wiem żeby użyć przycisku switch podłączam je na wejścia ATmega itd ) Może ktoś mi tylko...
Witam serdecznie tak jak w temacie poszukuję pomocy programowej, mianowicie chodzi mi o sytuację gdy po czterokrotnym wciśnięciu switcha zapala się led, niby prosty problem, jednak mam problemy z realizacją tego problemu. Wszelkie rady mile widziane, dysponuję procesorem atmega 644p 328p. Pozdrawiam!
Cześć 1. Czy zasilanie mikrokontrolera może być z tego samego źródła co zasilanie diod, np. z USB. Czy minus doprowadzony do wszystkich elementów budowanego układu może być pociągnięty właśnie z portu USB (uC, diody, wyłącznik, kwarc)? Czy plus może być ten sam do diod i uC? Nie wiem dokładnie jak to jest z USB, bo jak daje +5V i -5V to jak -5V uznasz...
Mam problemy z szybkościa działania programu na AVR ATmega 32. CZy lepiej używa cinstrukcji switch/case : switch(x) { case 0x04: pozmen1--; //jak tutaj damy -- to się zamota bo typ unsigned jest ! break; case 0x03: pozmen1++; break; case 0x02: warstwa++; //we break; case 0x01: warstwa--; // wy break; } czy lepiej if-ów : if(x==0x04) pozmen1--; //jak...
Policz średni prąd pracy, to znaczy za jakiś określony czas, najlepiej wymiany akumulatorów. Średni, to znaczy 600mA*liczba godzin pracy czynnej + X mA*liczba godzin w uśpieniu + ewentualnie Y mA jakiś stanów przejściowych typu działanie czynne bez podświetlenia. Na tej podstawie możesz dobrać pojemność akumulatora lub określić czas pracy na założonym....
1. twój układ resetu nigdy nie powinien zadziałać ;) gdzieś ty dał ten switch ? ... coś źle spojrzałeś na notę z której widać, że brałeś przykład. 2. Jedna z najgorszych rzeczy !! - nie raczyłeś podłączyć wszystkich pinów zasilania - to już masakra dla procka, u ciebie GND na pinie 28 wisi w powietrzu 3. Nie widać żadnego - najmniejszego filtrowania...
AVCC is connected to the ADC through a passive switch. The internal 2.56V reference is generated from the internal bandgap reference (VBG) through an internal amplifier. In either case, the external AREF pin is directly connected to the ADC, and the reference voltage can be made more immune to noise by connecting a capacitor between the AREF pin and...
uP u mnie to Atmega więc z resetem nie ma problemu. Switch bardzo fajny. Szukam zintegrowanego rozwiązania w kataloguLineara http://www.linear.com/parametric/battery... Jak nic ni znajdę to w ostateczności obsługę on/off trzeba będzie zrobić w uP (jak w profesjonalnych urządzeniach)
Witam wszystkich w Nowym Roku :) Tak wygląda moduł (przepraszam za niewyczyszczony topik): https://obrazki.elektroda.pl/4858564700_... https://obrazki.elektroda.pl/9093440000_... Dokładnie: OPIS +3,3V na prawdę to P24 OPIS GND na prawdę to P26 https://obrazki.elektroda.pl/5100756100_... Rx Tx jak widać...
Przy wyświetlaczu musisz linie R/W i DB0-DB3 zewrzeć do masy. Jedna dioda nie podłączona. Rezystory do LEDów 1 k ? nie za dużo ? W czym ten schemat, bo dziwny jakiś takiś ;-) 1. R/W jest wpięte do masy. 2. Co do DB0-DB3 czy jestes pewny, że jest to konieczne? 3. Która dioda jest nie podłączona ,wg mnie obie są. 4. Schemat jest w eaglu, dziwią ciebie...
Witam Oto kod w języku C. Odnośnie schematu - będzie wszystko działało prawidłowo, gdy zastosujemy diody LED niskoprądowe (np. /*Czestotliwosc taktowania procesora 1 MHz (korzystamy z wewn. RC 1MHz) *Procesor ATmega 8 */ #define F_CPU 1000000UL #include <avrio.h> #include <utildelay.h> #define Czas_zalaczania 400//Czas oczekiwania...
http://obrazki.elektroda.pl/4553573800_1... Przy tworzeniu projektów z mikrokontrolerami, oprócz uniwersalnych płytek stykowych, często przydają się gotowe moduły testowe, które można szybko podłączyć. Można kupić takie w wielu sklepach, ale ich ceny są na ogół absurdalne, np. w Kamami sprzedają płytkę z ATmega128 za 109 zł! Poniżej...
Przypuszczam, że ta sekwencja jest błędna: [syntax=c] pinMode(relay1_up, OUTPUT); pinMode(relay2_up, OUTPUT); pinMode(relay1_down, OUTPUT); pinMode(relay2_down, OUTPUT); pinMode(switchUp, INPUT_PULLUP); pinMode(switchDown, INPUT_PULLUP); pinMode(sensor1, INPUT); pinMode(sensor2, INPUT); pinMode(relay1_up, LOW); pinMode(relay2_up, LOW); pinMode(relay1_down,...
http://obrazki.elektroda.pl/4134553500_1... 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ę...
Usunąłem kod obsługujący drugi kanał, bo była jakaś interferencja pomiędzy kanałami w wyświetlaniu. Powinno działać w miarę dobrze (sprawdzane na symulatorze): [syntax=c]#include <Adafruit_NeoPixel.h> //#define DEBUG_TEST_LEDS #define nonLinearLogAudio //#define DEBUG_PRINT_ANALOGVALUES //#define DEBUG_NO_PEAK_SWITCH const int useSensorValues...
I Już widzę światła sterowane masą. Chyba jednak nie... cytat z dokumentacji: Headlight: Headlight switch OFF (Below 1.0V), Headlight switch ON (B+, czyli Battery positive voltage ~12V)
Też mi się wydaje, że włączenie w najwyższym punkcie to pomyłka. Artykuł cytowany przez kol. ablertb chyba wszystko wyjaśnia i już w pierwszym zdaniu: "A zero-crossover solid-state relay may be the worst possible method of switching on a transformer or a highly inductive load." mamy, że SSR włączany w zerze to najgorszy możliwy sposób na włączanie...
witam, napisałem dwa kody na obsługę i2c master(atmega644p): /* * main.c * * Created on: 16 lut 2018 * Author: Mirosław Kardaś * web: www.atnel.pl */ #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> #include <util/delay.h> #include <avr/wdt.h> #include <avr/pgmspace.h> #include <avr/eeprom.h>...
Zacznij od testów elektrycznych - wyjmij uC z płytki, dołącz zasilanie i sprawdzaj czy nie masz zimnych lutów omomierzem. Jeśli wszystko będzie śmigać to dalej odepnij wyświetlacz i ręcznie w programie wydawaj polecenia wystawienia na określone piny określonych stanów i sprawdzaj woltomierzem czy takie rzeczywiście są. Wreszcie sprawdź co się stanie...
Nie dałeś kondów przy switchach, więc możesz mieć problem z ich tzw. drganiem. Poza tym nie napisałeś co to ma robić. Pamiętaj, że z jednego portu nie zapalisz więcej jak 5 ledów a z całej atmegi nie więcej jak 10, bo mega nie wyrobi prądowo.
Układ będzie zasilany najprawdopodobniej z akumulatora Li-Pol 3s, 11,1 V i oprócz układu trzeba zasilić jeszcze 4 silniki. Rozumiem, że w takim przypadku trzeba będzie zmienić kondensatory na wejściu na pojemniejsze. Bezpiecznie daj po 470uF na wejściu i wyjściu regulatora napięcia. A później to testowanie, czy przy działających silnikach z obciążeniem...
Wykres ten pokazuje, że dla trybu IDLE przy 4MHz i 1,8V, prąd pobierany przez uC będzie miał około 180-200uA. Można zadać pytanie, jakie działające peryferia są wtedy brane pod uwagę. W tym zakresie odpowiedź można znaleźć tutaj: 28. Typical Characteristics The following charts show typical behavior. These figures are not tested during manufacturing....
a = 0; b = 0; if (Serial.available()) { a = Serial.parseInt() ; //Serial.println(a); b = a%1000; a = a-b; a = a/1000; Na jakiej podstawie sądzisz że po takich obliczeniach zmienna a typu long będzie miała ładne okrągłe wartości: 1,2,3... Do instrukcji switch() lepiej stosować zmienne typu całkowitego.
Podstawą pomocy jest komplet informacji od pytającego. W szczególności: - schemat lub opis połączeń - ok podałeś oznaczenie płytki... ale przypuszczam, że mało komu będzie się chciało szukać schematu - opis "co program powinien robić" oraz "co program robi w rzeczywistości" - to co obserwujesz, wynika dokładnie z Twojego programu... nie wiadomo natomiast...
a jak może być inaczej u ciebie skoro masz: S1 Alias Portb.2 S2 Alias Portb.1 czyli sprawdzasz wyjścia a nie wejścia mikrokontrolera wejścia są w Bascomie oznaczane jako Pin czyli powinno być: S1 Alias Pinb.2 S2 Alias Pinb.1 Dodano po 4 a tak w ogóle to pleceałbym ci jak najszybciej zapoznać się z funkcją Bascoma o nazwie " Debounce " oraz jak najszybciej...
void at_komenda_reakcja(unsigned char at_komenda_nr){ switch(UDR){ case 0: wyslij_dane(); ... Nie masz zdefiniowanej zmiennej UDR dla switch, wiec pewnie powinno byc void at_komenda_reakcja(unsigned char at_komenda_nr){ switch(at_komenda_nr){ case 0: wyslij_dane(); ...
Wiem, że to proste pytanie. Przejrzenie paru tematów nie dało mi jednoznacznej dpowiedzi. Czy da się tak zrobić? portB ustawiony na wejście. pinB.1 podciągnięty do masy. Pod pinB.1 podpięty switch (podciągający do V+) dioda LED podpięta katodą do masy i anodą do pinB.1. Uda się tak zrobić, żeby kontroler reagował na switch? Chodzi o to że naciskam switch,...
Napisz co te warunki mają robić (słownie) to Ci napiszę nowe. Zdajesz sobie sprawę, że ten warunek if( !++key_lock ) będzie spełniony tylko wtedy, gdy key_lock przed inkrementacją ma wartość 255? R Dodano po 2 Może coś krzaczy się podczas zaniku napięcia, próbowałeś ustawić BOD level w fuse bitach? Jeśli podczas zaniku napięcia nie używa przycisków...
Nie da się. Masz przy pomocy rejestru PORT możliwość albo Pull up albo wejście bez podciągnięcia. Innej możliwości nie ma. Właśnie dlatego taka obsługa switchów jest tak rzadko stosowana. Zmierz napięcie na wejściach. Powinny mieć wartość w pobliżu 0V. Dopiero po naciśnięciu switcha ma rosnąć do 5V. Podłącz rezystory np 1K do masy i zobaczysz czy to...
Witam Robię projekt kompetencyjny, a jednym z jego elementów jest podłączenie w/w ATmegi do modułu ESP8266. Problem polega na tym, że pomimo wielu prób i konfiguracji, ciągle na wyjściu z mikrokontrolera otrzymuję śmieci. Sam moduł Wi-Fi jest sprawny, gdyż został sprawdzony. Wiem również, że ATmega pracuje na poziomie logicznym 5V, a ESP8266 na poziomie...
Twoja styczność z językeim C zaczęła się od właśnie tej książki? Skoro tak to może rzeczywiście można się z niej nauczyć programować w C choć ja mam wątpliwości (da się na pewno ale czy takim samym nakładem sił?). Znałem wcześniej C++ zanim ta książka wpadła mi w ręce więc nie będę się więcej wypowiadał na jej temat. Odnośnie różnic między C/C++ to...
Wow, zadziałało. Tzn, diody się palą takim światłem jak powinny, i kolejno zapalają się i gaszą co trochę więcej niż sekundę. Siedzę i się szczerzę do tych diod jak mysz do sera :D Ale mam jeszcze kilka pytań: volatile _Bool utflag = 0; while(1) { if (utflag) { utflag = 0; ( . . . ) ISR(TIMER0_COMPA_vect) { static uint16_t utimer = 0; ( . . . ) if (++...
Witam wszytkich, Od kilku dni próbuję się nauczyć obsługi modbus rtu w bascomie i na podstawowym programie z helpa się wyłożyłem. Poradźcie dlaczego wpisując mój procesor w poniższy kod wywala mi błędy? Czy ta biblioteka jest tylko pod dany procesor? Proszę podpowiedzcie. https://obrazki.elektroda.pl/7527367800_... [syntax=vbnet]'-------------------------...
Ponieważ program jest prosty, więc najłatwiej opalić symulator w Atmel Studio (nie potrzebujesz hardwarowego debugera) i sobie prześledzić ten program krok po kroku, w poszukiwaniu stanu IO, który jest niezgodny z oczekiwaniami. W ten sposób najłatwiej wykrywa się głupie błędy związane z nieprawidłową konfiguracją jakiegoś układu peryferyjnego. BTW,...
Witam. Dziękuję za odpowiedź. Jeśli chodzi o układ uC to jest to Atmel Atmega 16 (16AU). Sprawdziłem sterownik, nie posiada zabezpieczeń. Krańcówki były podłączone pod nóżki 41 oraz 41 układu (IN2 : PB0/XCK/T0 oraz DS1 : PB1/T1). Przesyłam zdjęcie płytki sterownika od strony wlutowanego układu, na czerwono zaznaczyłem miejsca, które były podłączone...
Schemat błędnie "narysowany", katody tyrystora do GND (minusa). Powiedzcie mi jeszcze jak tym sterować. Steruje program zapisany w µC a zmiana rodzaju świecenia następuje po naciśnięciu brakującego micro switch_a (K1).
Witam, myślę że można zrobić to dużo łatwiej. Potrzebny Ci będzie jeden pin z przerwaniem (może być puste) i pomysł na opóźnione przejście w tryb uśpienia.[syntax=c]void sleep_button(int is_pressed) { enum sbstate {SBSTATE_IDLE, SBSTATE_SLEEP, SBSTATE_WAKEUP}; static enum sbstate state = SBSTATE_IDLE; static unsigned int tp; switch (state) { case SBSTATE_IDLE:...
Czy znajdę płytkę o wyglądzie mniej więcej jak małe arduino-attiny 85 (śledź USB i niewiele więcej). raczej bliższa kwadratowi niż długiemu prostokątowi (aby nie złamać) Wymogi: procesor z "prawdziwą" kompatybilnością z USB (jeśli atmega to U4 itd...) jeden prosty switch na płytce byłby dodatkowym bonusem. wielokolorowy LED to już szczyt szczęścia pamięć...
Napisz wyświetlanie od nowa - w tym kodzie wszystko jest źle. Zdefiniuj obrazy cyfr w postaci tablicy stałych indeksowanej wartością cyfry. Wyrzuć procedury wyświetlania cyfr i switche, które je wywołują - to wszystko razem da się zrobić w jednej linijce kodu, a u Ciebie zajmuje to ponad 120 linii. Wyświetlacz multipleksowany MUSISZ obsługiwać w przerwaniu...
No to mam "zagwozdkę". Ja zrobiłem to według jednego z opisów: Utworzyłem Dummy (Does nothing, use for virtual switches only) Kliknąłem Utwórz Wirtualne czujniki Pododawałem czujniki temperatury, ciśnienia, które mają swoje IDX http://obrazki.elektroda.pl/9206214000_1... Terminal pokazuje wysyłany ciąg > GET http://192.168.0.154:8080/json.htm?type=...
Hmm, przygotowałem taki schemat pcb pod klawiaturę matrycową o rozmiarze 4x5. http://obrazki.elektroda.pl/8909660200_1... Zastanawiam się jeszcze nad jedną rzeczą. Mianowicie microswitch ma 4 piny. Moje logiczne myślenie podpowiada mi że są one parami, czyli że dwa pierwsze są połączone i w momencie wciśnięcia zwiera je z dwoma pozostałymi....
http://obrazki.elektroda.pl/5329074900_1... Czy dorobić jeszcze piny do anody diód ? Czy tylko zrobić dla anody a nóżki katody połączyć razem i do masy? I czy łączyć układ można korzystając z skrętki(żyłowej)? Nie wszędzie da się lutować ścieżki.
Ja stosuję taką procedurę inicjowania nadawania: char SetupCC1000TX (char TXCurrent) { int i; char lock_status; WriteToCC1000Register (CC1000_PA_POW,0x00); // Turn off PA to avoid frequency splatter WriteToCC1000Register (CC1000_MAIN,0xE1); // Switch into TX, switch to freq. reg B WriteToCC1000Register (CC1000_PLL,TX_PLL);...
Witam, Niedawno wpadł w moje ręce wyświetlacz 4.3 cala z rezystancyjnym panelem dotykowym oraz procesorem graficznym FT810. Pierwsze co to poszukałem sobie informacji na ten temat oraz znalazłem książkę Pana T.Francuza oraz dołączone do niej biblioteki dla układów FT8xx. Przykłady są napisane dla AVR i ARM i wydawało by się że to formalność by napisać...
Jak to zrealizowac w kodzie? dokladnie tak jak napisal mietekn - porownujesz stan portu ze stanem z poprzedniego porownania - jesli sie zmienil (XOR) - to cos sie stalo - przycisk zostal puszczony/nacisniety. inne operacje logiczne pozwola wykryc tylko wcisniecie, albo tylko puszczenie przycisku. przykladowy kod, tym razem na ARMa, pracujacy nie w...
Nawiązując do mojego postu (http://www.elektroda.pl/rtvforum/viewto... (chyba nie powielam tematu) chciałbym sie dowiedzieć czy ktoś tu wie i chciałby się ze mna podzielić wiedzą czy istnieje jakiś układ przełączający (jakiś switch lub multiplexer) który przelaczalby dwa wejscia/wyjscia pomiedzy roznymi ukladami. Wyjasnie to na przykladzie:...
http://obrazki.elektroda.pl/3803245500_1... Witam! Chciałem przedstawić mój układ kostki sześciennej (4x4x4), który ostatnio stworzyłem. Zainspirowany http://obrazki.elektroda.pl/5944479000_1... GALERIA: Diody: http://obrazki.elektroda.pl/8405504800_1... http://obrazki.elektroda.pl/4483657100_1...
Witam, gdzieś kiedyś widziałem schemat i kod programu do załączenia i rozłączenia zasilania atmegi 8 jednym switch i tranzystorem chyba BC547 ale nie mogę tego znaleźć ... Działało to na zasadzie gdy przycisk przytrzymany 5 sekund to załączył atmega gdy znów przytrzymany to wyłączył. Czy ktoś pomoże i wie jak to najłatwiej zrobić?
margas4542 linki które podałem zawierają naprawdę dobre materiały na temat timerow, przerwań i multipleksowania wyświetlaczy LED. Poniżej jest uproszczony schemat podłączenia wyświetlaczy LED i kod programu do obsługi multipleksowania wyświetlaczy LED. http://obrazki.elektroda.pl/3557658300_1... Poniżej znajduje się program do obsługi...
kod ( właściwie część dotycząca PCF8574AP ) Piny P.0 - P.4 do switchy, podciągnięte do VCC przez rezystor 10 K, wyjście INT układu PCF8574 podciągnięte przez rezystor 10k do VCC Poprzedni układ był na Atmega328, ten jest na Atmega1284P Przy uruchomieniu jest tak, że miga pierwsza opcja menu - ustawienie minut, na przemian z tym co powinno być wyświetlane...
switch(n&0x0E) //bo liczby większej od 14 nie wyświetlimy => licznik działa jak sekundnik wyświetlając liczby w sekwencji co druga
Hej, bez wnikania w szczegóły, to w przykładzie z pierwszego postu widzę raczej jeden wątek. Cała zawartość pętli wykonuje jakoś algorytm (który najpierw powinieneś ułożyć). Pomijając rtos (co to za pomysł?) program mógłby wyglądać tak:[syntax=c] przerwanie_timera(); while(1) { zadanie1(); //mruga zielonym jak jest ciepło zadanie2(): //miga czerwonym...
Witam. Skonstruowałem sobie płytkę testową plus do tego peryferia (diody, switche), ale to już na innych płytkach. Dzisiaj dostałem wreszcie atmege, zlutowałem wszystko i problem wynika taki iż gdy atmega jest wlutowana (siedzi w podstawce na płytce której schemat poniżej) podłączam ja pod STK500 (podróba z allegro) to wykrywa mi jak chce, 1/4 podłączeń...
1. Dlaczego każdy bit przechowujesz na 16 bitach w pamięci RAM (typ int) zamiat trzymać po 8 bitów w jednym bajcie pamięci Flash? 2. Co pisze kompilator o zajętości pamięci RAM? 3. Skróć program min. 20-krotnie, wyrzuć wszystkie switch() i użyj prawdziwej pojedynczej 2- lub3-wymiarowej tablicy do przechowywania obrazów znaków. W ten sposób całe wyświetlanie...
1. Volatile: http://mikrokontrolery.blogspot.com/2011... 2. Tryb asynchroniczny: 1. Disable the Timer/Counter2 interrupts by clearing OCIE2 and TOIE2. 2. Select clock source by setting AS2 as appropriate. 3. Write new values to TCNT2, OCR2, and TCCR2. 4. To switch to asynchronous operation: Wait for TCN2UB, OCR2UB, and TCR2UB...
Witam, Jestem początkujący jeśli chodzi o budowanie układów i dlatego chciałbym na początek zbudować coś prostego. Wymyśliłem model złożony z trzech serwonapędów firmy Tower Pro MG955h i dwóch krańcówek np. C & K COMPONENTS - TPA413G. - SWITCH NAVIGATION 4 WAY (http://pl.farnell.com/c-k-components/tp... lub C &...
zostala mi (chyba) dzialajaca atmega168. Stad moje pytanie - czy moge ja zaprogramowac jakims programem bez programatora, jesli moj komputer ma zlacze rs232? Pracuje na Linuxie. Twój procesor prawdopodobnie ma ustawione fusebity na zewnętrzny rezonator 16MHz, zatem potrzebujesz podłączyć do niego rezonator kwarcowy z dwoma kondensatorami (oprócz zasilania...
Tak jest to dość istotne... Do pomiaru używany jest 16-bit'owy timer 1 (atmega162 ma dwa ale po takim ogólnym rzucie okiem na pdf wygląda na to, że nie ma różnic w konfiguracji)... Co przy częstotliwości taktowania 8MHz prescalerze 8 daje max ~65,5ms przy dokładności do 1us... Poniżej fragment kodu który mierzy czas trwania stanu wysokiego... ... volatile...
Chce wykonać pomiar prądu pobieranego przez atmege i diode. Czyli nie masz amperomierza? Jeżeli nie masz amperomierza, to jaki masz woltomierz - wiarygodny? Prąd diody nie płynie przez Rb podłączony do Vcc (ale to zapewne wiesz). Czy dobrze rozumie, że druga próba dotyczyła podłączenia Rb (zamiast w miejscu jak na schemacie) pomiędzy pin masy ATMEGA,...
Kolego RSP, nie wiem skad ty bierzesz te dane na temat TRANSILI ale niestety nie maz racji(wydaje mi sie ze ja mowie o transilach a ty o TRISLIACH), moze lepeiej znasz sie od producenta ? , Poswiecilem troche czasu i znalazlem na stronie : http://www.st.com/stonline/books/pdf/doc... TRANSIL / TRISIL COMPARISON Electrical characteristics The Transil...
Czy aby napewno bo cyrystal oscylator to oscylator kwarcowy a dla ceramicznych widzę dedykowane opcje wyboru full switching oscylator ceramic oscylator.?
Witam. Stworzyłem sobie układ, który wygląda jak na zdjęciach. Problem tkwi w tym, iz atmega nie trzyma żadnych ustawień(ustawiłem rtc, po zrestartowaniu godzina i data jest całkiem inna od tej ustawionej), za nic nie mogę zmusić dht11, aby wyświetlał temp. Co robię źle? Kod wygląda tak: 869292 869293 869294 869295 869296
Źle skonstruowane (większość) multipleksowane przetworniki A/C mają tę przykrą właściwość, że napięcie z aktywnych kanałów np. z układu S/H przenika do kanałów niepodpiętych. Jeśli koniecznie chcesz odsłuchiwać te kanały bez takiego "przesłuchu", musisz dać mniejsze oporności do masy, a najlepiej je zwyczajnie przywrzeć (0Ω :!: ) do czasu dołączenia...
Witam serdecznie. Mam prośbę do osób znających się na programowaniu ATmega. Czy ktoś mógłby mi napisać program do ATmega328- 16bit- pwm dimmera dmx 4ch z detekcją zera, oraz schemat? Układ ma sterować reflektorami scenicznymi o mocy 1kw po przez dmx512. O ustawianiu adresu początkowego myślę że dobrym rozwiązaniem będzie dip switch 10 segmentowy. Bardzo...
koledze chodzi chyba o to, że jego while wygląda tak: [syntax=c] while(1) { uint32_t pozycja, TCNT1temp = TCNT1; pozycja = TCNT1temp * 360 / zawartosclicznika1 ; //obliczanie pozycji śmigła pozycja = 360 - pozycja; // przeciwny ruch wskazówek zegara switch ( pozycja - 6 * sek ) // wskazówka sekundowa { case 0: wyslij (0xFFFFFF); break; } [/syntax]
Używam jeszcze biblioteki <Adafruit_SSD1306.h>, która dosyć sporo zajmuje i szukam ewentualnie jakiejś alternatywy. Co do kodu, to jeśli komuś będzie chciało się go przejrzeć i ktoś coś wyłapie, to wklejam go niżej. Wiem tylko, że jeszcze niektóre powtarzające się funkcje mogę zamienić na jedną zamkniętą w pętli. [syntax=c]#include <SPI.h>...
Tak na oko wydaje się być OK, skoro przerwania przychodzą to oznacza że odbiera pakiety. Na początek zmnień wartość Dcrval na &H48 i zobacz co się stanie. Dalej zmień wartość Imrval na &H1F (aby uaktywnić raportowanie o błędach). Następnie spróbuj odczytywać także wartosć rejestu RSR o adresie &H0C (tak jak RCR tylko do odczytu) i daj znać o efektach....
Witam. Stworzyłem sobie układ, który wygląda jak na zdjęciach. Problem tkwi w tym, iz atmega nie trzyma żadnych ustawień(ustawiłem rtc, po zrestartowaniu godzina i data jest całkiem inna od tej ustawionej), za nic nie mogę zmusić dht11, aby wyświetlał temp. Co robię źle? Kod wygląda tak: [syntax=c] #define przycisk1 9 #define przycisk2 10 #define d...
Witam kod do nadajnika może wyglądać tak: #include <avr/io.h> #define F_CPU 1000000UL #include <util/delay.h> #include <avr/interrupt.h> //set desired baud rate #define BAUDRATE 1200 //calculate UBRR value #define UBRRVAL ((F_CPU/(BAUDRATE*16UL)&... //define receive parameters #define SYNC 0XAA// synchro signal...
Nie wiem jak bardzo złożone ma peryferia atmega32, ale chyba DMA ma z wsparciem dla ADC. Jeśli posiada DMA to warto skonfigurować DMA w taki sposób by dane z ADC przesyłał do RAM, ale na pewno przerwania nie będą optymalne. ATMega nie ma DMA, niestety. Z AVR DMA mają tylko XMEGA. Dlaczego przerwania nie będą optymalne? Gdyż wymagają przełączenia kontekstu...
Witam Jestem początkujący. Robię sobie taki kursik z youtube, zaprojektuj i zbuduj, programowanie mikrokontrolerów, na lekcji 24 próbuje napisać nieco sprytniejszy program niż ten zaproponowany przez Panią Darię. Program ma przy użyciu 2-óch wyświetlaczy 7-segmentowych liczyć od 0-99 i od nowa. Program jest podzielony i wygląda tak: /* cel:licznik przy...
https://obrazki.elektroda.pl/9342271000_... Dzień dobry, Urządzenie powstało w celu monitorowania poziomu wilgotności w pewnej zamkniętej przestrzeni. Przekroczenie zadanego poziomu jest sygnalizowane sygnałem dźwiękowym (buzzer) i świetlnym (LED). Wartości z ostatniego pomiaru można w każdej chwili odczytać, po naciśnięciu przycisku,...
Mam problem z przełączaniem bitów Założenia programu są następujące Program przez określony czas ma włączyć 2 diody oznaczone Pompka1 i Pompka2 oraz wyłączyć Napowietrzacz po upływie czasu ma przełączyć tz: wyłączyć Pompka1 i Pompka2 oraz włączyć Napowietrzacz po upływie drugiego czasu znowu ma przełączyć. Niestety program nie działa dobrze Diody działają...
Pierwsze, to nie możesz kuglować włączaniem i wyłączaniem przerwań. Silnik musisz zatrzymywać w inny sposób. z stepCounter zrób tablicę stepCounter[4]; Przerwanie zmodyfikuj mniej więcej tak [syntax=c] ISR(TIMER0_COMP_vect) //funkcja obsługi przerwania { for(char l=0; l<4; x++) { // lepiej for(char l=0; l<LSILNIKOW; x++) // i zrobić #define LSILNIKOW...
Przykładowy program który wyświetla jakąś liczbę: [syntax=c]volatile uint16_t disp=0; uint8_t buff[]={0b11000000, 0b11111001, 0b10100100, 0b10110000, 0b10011001, 0b10010010, 0b10000010, 0b11111000, 0b10000000, 0b10010000, 0b10001000, 0b10000011, 0b11000110, 0b10100001, 0b10000110, 0b10001110}; ISR(TIMER0_OVF_vect) { static uint8_t dig=0; static uint16_t...
Jeśli zwierasz przycisk do masy, to dodaj jeszcze na górze: PORTA=0xff; Aby wymusić na nim stan wysoki, gdy nie jest wciśnięty switch
Najprościej odpalić timer i w przerwaniu wystawiać dane i przełączać segmenty przykład: ISR(TIMER1_COMPA_vect) { switch(wysw) { case 0: PORTD = 0b1111110; PORTB=cyfra[jednosci]; wysw++; break; case 1: PORTD = 0b1111101; PORTB = cyfra[dziesiatki]; wysw++; break; case 2: PORTD = 0b1111011; PORTB =...
Jeżeli robiłeś płytkę używając funkcji "switch to board" to 12V poszło na uC dlatego że te wszystkie VCC dla programu to jedna linia zasilania, żeby to zmienić w schemacie to zmień nazwę lini zasilania przy mostku na np. 12V. Co do samego schematu to dodaj przy uC chociaż jeden kondensator elektrolityczny 100u. Przy mostku na każde wejście zasilania...
Ale to jest rozszerzenie specyficzne dla gcc, język C nie dysponuje takim mechanizmem! W efekcie kod staje się nieprzenośny, a nic na tym nie zyskujemy, bo z takiego zakresu nie da się zbudować sensownej look up table, w efekcie niczym się to nie różni od serii ifów. Człowiek nic nie napisał o kompilatorze więc przyjąłem że standardowo korzysta z GCC...
switch atmega atmega switch schemat dioda switch atmega
zakłócenia telewizja cyfrowy wysokiego napięcia drukarka konica c3350
toyota yaris sprzegło ładowarka tl494
Ikonki na desce rozdzielczej Peugeot 307 Diesel 2004 Czas działania pastucha elektrycznego - baterie, akumulatory, zasilanie sieciowe