Cześć, ostatnio nie miałem czasu, także przepraszam za brak odpowiedzi. Program jest taki sam jak w pierwszym poście, tylko podmieniłem wzory na czas: RC5_main.c [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/sleep.h> /* Załącz bibliotekę RC-5*/ #include "dd_rc5.h" /* LED testowy...
Witam, na wstępie dodam że jestem bardzo początkujący w programowaniu. Staram się stworzyć program który by włączał i wyłączał funkcję RGB, poprzez pilot RC5. Staram się to zrobić po kolei i najpierw próbuję gasić i zapalać pilotem diodę. Problemem jest to, że program reaguje na każdy przycisk a nie na konkretny - zaprogramowany. Chce sterować klawiszem...
wciśniej F1 i sobie poczytaj w helpie co znaczy cbi a co znaczy sbi zamiast org 0x0 wpisz org 0x30 Wpisując 1 do DDRx ustawiasz go na wyjscie, Wpisując 1 do PORTx ustawiasz stan wtysoki napisz taki program: include "m16def.inc" .org 0x30 rjmp START START: ldi r16,1 out DDRB,r16 ; ustawiasz PINB0 jako wyjscie petla: cbi PORTB,0 nop sbi PORTB,1 nop rjmp...
Witam. W samochodzie zostal wymieniony program.
Dlaczego przy U1 wszystkie wyjścia są przesunięte o jeden? Bo jego zegarek wyświetla w formacie gdzie godziny są 1 - 12 (a nie 0 -11). Nie ma godziny 0 a ta cyfra potrzebna jest o godz. 10. Co do sugerowanej przeróbki to po prostu autor sugeruje by dołożyć 4017 na dziesiątki godzin i przywrócić układ 0-9 na pozycji godzin. Plus inne podłączenie układu...
Witam. W załączniku są dwa proste układy autozerowania. Czas trwania impulsu ustala stała czasowa RC. Dioda rozładowuje kondensator po wyłączeniu zasilania. Pzdr.
Gdy dioda 220v świeciła to przez przypadek dotknąłem ją śrubokrętem w te miejcie na zdjęciu i usłyszałem wyładowanie i dioda przestała świecić da się to jakoś naprawić. https://obrazki.elektroda.pl/6875752000_...
http://obrazki.elektroda.pl/4798487400_1... http://obrazki.elektroda.pl/6782434300_1... Były lampy elektronowe, przyszedł zatem czas, by zrobić jakiś półprzewodnik. Na początek wybrałem stopową diodę germanową, jako stosunkowo prostą do wykonania. Nie wykluczam, że w przyszłości spróbuję skonstruować tranzystor stopowy....
Bo on wtedy skacze do 0,a nie zeruje wszystko sprzętowo...
Najbardziej mnie martw to "zwarcie". W starych instalacjach praktykowano "zerowanie", dlatego żarówka może świecić.
Ja bym zrobił tak: Wówczas co dziesiąty raz dioda świeciła by przez czas delay1 + delay2 [syntax=c]void loop() { count1 ++; // zwiekszamy licznik digitalWrite (ledPin, HIGH); //zapalamy diodę led delay (delay1); //czas świecenia = delay1 if (count1 == 10) //jesli dziesiata pętla { delay (delay2); // wydłużamy czas świecenia led o delay2 count1 = 0;...
"To" na pewno nie będzie działać - wejście MR musi być w stanie niskim aby licznik "liczył", kondensator (L :?: ) nie miałby się którędy rozładować, a tranzystor przez zbędną diodę zerowałby (już wyzerowany :D ) licznik po pierwszym impulsie, który i tak sie nie pojawi :cry: Pomyślę, jak to można najprościej zrobić.
Wszystko pięknie ładnie ;) tylko gdzie zerowanie flagi Ir_key_press_flag pod koniec warunku IF ???
Wydaje mi się że problem tkwi ja dobrze zauważyli koledzy Senior oraz Aceto w napięciu samoindukcji której źródłem jest duża indukcyjność. Zastosowanie diody zerującej powinno załatwić sprawę. Doda zerująca powinna być wpięta pomiędzy D a Sw odwrotnym kierunku niż kierunek przewodzenia tranzystora. Musisz pamiętać również o tym że czas wyłączenia tranzystora...
Możesz dodać licznik wciśnięć S1 = pierwszy cykl, licznik = 0 - diody, kolejny = 1 -> lampy, zeruj licznik (albo zeruj za pomocą s2)
A gdzie wyczytałeś tam takie brednie: Config Pinb.0 = 0 Config Pinb.0 = 1 że te instrukcje zmieniają stan portu? A tu masło maślane: Reset pinb.0=1 Najpierw niby kol. zeruje port i jednocześnie go ustawia...
W oryginalnej wersji pierwsza linia nie wpływała na wynik. Lepsze jest rozbicie na 2 instrukcje (gdybyś kiedyś przerabiał kod na mniejszą ilość kolumn lub wierszy) KB_DIR |= (wszystkie ustawiane bity); KBDIR &= ~(wszystkie zerowane bity); Albert
No fakt - najpierw inkrementuje :oops: Jeśli chodzi o TF2 to sprawa ma sie tak(to sprawdziłem w bibli 51): Ponieważ Timer2 posiada 2 źródła przerwań , za którymi stoją flagi EXF2,TF2 to nie są one zerowane sprzętowo , byśmy wiedzieli co spowodowało przerwanie T2 , a mianowicie opadające zbocze na T2EX(P1.1) czy przepełnienie licznika.Więc flagi TF2/EXF2...
twój program doskonale miga diodą zgodnie z zamierzeniem ale musisz poczekać nie sekundę a kilka minut bo z powodu niezerowania licznika count kolejne mrugnięcie zachodzi dopiero po przekręceniu inta :) (btw. w tej sytuacji volatile jest niepotrzebne)
rejestracji każdego nowego impulsu podczas świecenia diody LED no a co ja proponuję. jak odbierasz impuls to zerujesz licznik. Każdy impuls ustawia ten czas od nowa na 3 minuty. Chociaż ja bym osobiście zrobił na przerwaniach Techniczna realizacja jest bez znaczenia. Chodzi o ideę
Cześc. Odłączylem wszystkie układy które podlegają bezpiecznik zostaje diodowy prostownik napiecia i 2 kondensatory a bezpuecznik dalej pada musiala pas jakas dioda i zeruje xP
Materiały, których szukasz są dostępne na stronie EdW. Tu masz bezpośredni link: http://www.edw.com.pl/index.php?module=C... Nie załączam plików, bo znów ktoś będzie rzucać kuriozalne oskarżenia o "żerowaniu punktowym" ;) adam
Dałeś radę - prawie dobrze i nawet powinien działać... chociaż nie do końca jak byśmy tego chcieli ;) Parę moich poprawek: $crystal = 1000000 Config Pind.0 = Input Config Pinb.1 = Output Config Pinb.2 = Output Portd.0 = 1 Portb.1 = 0 Portb.2 = 0 Dim Dioda As Byte Dim Licznik1 As Byte Licznik1=0 Dioda = 0 '------------ Do Waitms 10 If Dioda > 0 Then...
Potwierdzam . Zwarcie na stałe 5i 3 nóżki eepromu (5-masa) powoduje iż przebieg drukarki jest zerowany i nie miga czerwona dioda na drukarce. Ponowne wyłączenie z sieci drukarki znowu zeruje eeprom. Gdyby ktoś miał później problemy z drukarką można zdemontować połączenie i wracamy do starego przebiegu. Wielkie podziękowanie dla kolegi G.B.
Najprostsza odpowiedź, to taka, że przerzutnik zażywa regularnie Bilobil ... :)) Jak impuls synchronizujący nie nadejdzie to układ będzie trwał w stanie stabilnym do wyłączenia zasilania albo przyjścia zakłócenia .. Wznosząc się jednak ponad to trywialne rozwiązanie to: - w przerzutniku dwutranzystorowym mozliwe są dwa stany albo jeden albo drugi tranzystor...
a dzień później już nie paniętał zadanego ustawienia tylko wracał na początek sekwencji (scalak jest podłączony na stałe, przekaźniki i diody tylko jak jest kluczyk w stacyjce). Zrozumiałem to tak, że układ nie powinien się zerować.
Rozumiem, że zarówno liczba długich jak i krótkich impulsów nie jest większa niż 9 (ilość liczników i wyświetlaczy). Po zakończeniu serii wynik jest wyświetlany przez np. 9sek., a następnie liczniki są zerowane. Czy tak ?. Pozdrawiam. ps. jestem abstynentem, wystarczy przycisk "pomógł" :D
Te mikrokontrolery mają coś takiego jak System Tick Timer, dzięki któremu możesz ustawić przerwania z dokładnością do 10ms. Ja mam coś takiego ustawionego dla LPC1343 (inicjalizacja SysTick): [syntax=c] // System Tick Clock source: System clock SysTick -> CTRL = 0x7; // Program the LOAD register (10msec) SysTick -> LOAD = 0x0927BF; // Clear SysTick...
Błąd algorytmu ! Jeżeli jest prawdą DZ_FIRE i key_dz_fire==0 zerujesz liczniki i zapalasz diodę i ustawiasz key_dz_fire na 1. Oznacza to że w następnych przebiegach pętli głównej nie masz szansy dotrzeć do warunku if(fire_isr==dzialko) bo go odcina nie spełniony warunek if(key_dz_fire==0). Brak jest zerowania flagi DZ_FIRE żeby była szansa wykonania...
W obsłudze przerwania inkremementujesz licznik od 0 do wartości równej połowie częstotliwości przerwań, a po osięgnięciu tej wartośc zmieniasz stan diody i zerujesz licznik. Ew. odwrotnie - inicjujesz licznik na tę wartość, dekrementujesz, po osiągnięciu zera przeładowujesz licznik i migasz.
Jeden rząd diod ze wspólną anodą nie wymaga stosowania multipleksowania. Dwa rzędy i więcej już tak. Postaram się to opisać jak najprościej dla trzech rzędów diod. Katody diody pierwszej z pierwszego rzędu, pierwszej z drugiego rzędu i pierwszej z trzeciego rzędu łączymy razem i podłączamy do portu np PB0. Katody diody drugiej z pierwszego rzędu, drugiej...
Excray, twój kod zadziała raz na 255, zapomniałeś zerować zmiennej a :P Mylisz się. Po prostu nie zrozumiałeś jak działa ten kod. Nie trzeba zerować tutaj żadnej zmiennej. W zasadzie kod można jeszcze bardziej uprościć: [syntax=c] while(1) { if(!(PINC & 0x01)) PORTD ^= 0x01; }[/syntax] Jak widać żadne zmienne ani globalne ani lokalne nie są potrzebne...
Właśnie niewiem jak to rozwiązać chciałbym uzyskać jakąś pomoc może ta linia zerująca to by było rozwiązanie tylko niewiem dokładnie o co chodzi :)
Napisałem coś takiego: #include <avr/io.h> #include <util/delay.h> int ilerazy = 0; int main (void) { DDRB |= (1 << 4); // Ustawienie bitu LED jako wyjścia TCCR0B |= (1 << CS00); // Ustawienie timera //TCCR0B = 0x00; while(1) { ilerazy = 0; TCNT0 = 0; while(ilerazy<76) {...
Można użyć scalonego dekodera 7442 albo 4028 i za nim dać szereg bramek or aby z zamiast świecącego punktu był pasek. Można też liczyć na rejestrach przesuwających* stan takiego "licznika" będziesz mógł od razu podać na diody, choć zrobienie dekady liczącej trochę się skomplikuje (kilka dodatkowych bramek do kontroli przeniesienia i zerowania), mimo...
1. Poczytaj ogólnie o timerach. 2. Poczytaj o trybach timerów, Tobie radziłbym CTC. 3. Poczytaj o przerwaniach. 4. Z Timera co sekundę będziesz wysyłać przerwanie. 5. Ustaw pin z przełącznikiem jako wejście. 6. Podciągnij wewnętrzny rezystor do pinu albo daj jakiś rezystor po drodze - nie zwieraj bezpośrednio do masy. 7. Ustaw port z diodą jako wyjście....
Trochę elementów złożone do kupy może tak wyglądać, rys. poniżej: 1. generator "cyklu", astabilny na układzie 555. Generuje prostokąt : czas "1" ok. 5 sekund, czas "0" ok. 30 sekund. Kondensator koniecznie blokowy, nie elektrolit, np MKT albo MKS firmy WIMA. 2. licznik "cykli" na układzie 4017 3. układ stopu na bramkach NOR, 4001. Wyłacznik Zał-Wył...
Dawno nic nie skrobałem dla AVR, poniżej kod który skompilował się lecz nie ma jak przetestować. Do sprawdzania wciśnięcia klawiszy powinieneś napisać funkcję, która będzie to robić zamiast ciągłego wstawiania prawie tego samego kodu. [syntax=c] #include <avr/io.h> #include <util/delay.h> /* definicje dla preprocesora */ // klawisze #define...
Jeśli chcesz aby np. dwie diody mrugały z różną częstotliwością to w najprostszy sposób możesz to zrobić tak: na początku pętli głównej dajesz małe opóźnienie powiedzmy 5ms. Potem w każdym obiegu pętli (co 5ms) zwiększasz wartość dwóch zmiennych np. Licz1 i Licz2. Kiedy Licz1 osiągnie wartość 50 wtedy zerujesz ją i zmieniasz stan pinu do którego dołączona...
Proszę spróbować takiego układu zerowania ... Diody tworzą bramkę AND, która poda 1 na wejścia MR liczników dla stanu 24 na licznikach godzin. Kondensator filtruje ewentualne zakłócenia, które mogłyby skasować licznik wcześniej.
Można też w tym celu wykorzystać licznik typu 4017 według koncepcji ze schematu poniżej. Schemat jest uproszczony i nie zawiera generatora, np. na układzie NE555. Łącząc odpowiednio wyjścia układu 4017 przez diody 1N4148 oraz wejście zerowania licznika można w niewielkim zakresie "programować" sposób migania diody LED. Poprawiony schemat. https://obrazki.elektroda.pl/4974014400_...
Zerowanie temu dyskowi nie pomoże. Dysk = kosz/
Ale wymuszenie stanu po włączeniu to nie to samo co hazard czy wyścigi. Rozwiązaniem pierwszego jest ogólnie stosowany prosty sposób. W zależności jaki stan chcemy otrzymać po włączeniu jedno z wejść R lub S należy połączyć z masą rezystorem np 4,7-10k i jednocześnie z plusem kondensatorem np 1-10uF. Dobrze jest dla bezpieczeństwa zbocznikować rezystor...
Kod który zamieściłem jest na ATTiny2313 więc nie powinno być problemu z przeniesieniem na ATMega8 - wystarczy sprawdzić i ew. zmienić nazwy rejestrów. Mam nadzieję że Ci się przyda. void PWMint(void) { DDRB |= (1 << PORTB2); DDRD |= (1 << PORTD5); // jako wyjscia DDRB |= (1 << PORTB4); TCCR0A =...
Na tym schemacie na filmie jest błąd. Nie można łączyć wyjcia rozładowującego (nóżka 7) z nóżką zerowania (4), bo układ się sam zablokuje. Nóżkę 4 łączy się zwykle bezpośrednio z plusem zasilania. Poza tym LED powinna mieć szeregowy rezystor ograniczający prąd, bo różne egzemplarze 555 mają różną wydajność prądową wyjścia rozładowującego i dioda jest...
Mój tok rozumowania: przerwanie wykonuje się kiedy licznik osiąga 10000 i się zeruje - tam diodę gaszę. W pętli głównej gdy licznik osiągnie 5000 diodę zapalam. Nie potrafię dopatrzeć się hazardu choć obserwacja zaprogramowanego Discovery na to wskazuje.
Myślę, że jedynym sposobem jest odbieranie danych z USARTa za pomocą przerwań. W programie należałoby ustawić jakieś opóźnienie i sprawdzać cyklicznie, czy nadszedł nowy znak. Jeśli w określonym czasie (zależnym od częstotliwości "powtarzania" klawiatury) nie nadejdzie nowy znak to diodę wyłączyć, jeśli nadejdzie i jest to 'w' to zapalić. Więc w funkcji...
bo dzisiaj ma mi go dostarczyć warsztatu. Po co ta informacja? Co to za serwis który klientowi każe liczyć miganie diody. Kolejny żerujący na wiedzy innych, ciekawe jakie będzie następne pytanie? Stawiam na "od czego zacząć". A regulamin i zasady działu mówią jasno, "W poście obowiązkowo wpisujemy opis uszkodzenia, widoczne objawy (mogą być poparte...
Dysk posiada niestabilne sektory (parametr C5) Można spróbować je naprawić przez zerowanie i remap programem MHDD, opis programu wyżej. Bardzo możliwe, że to jest powodem zmartwień. Po wykonaniu tych czynności prosimy o ponowny SMART i skan powierzchni dysku, już z tego programu (MHDD)
Tak się zastanawiam, w jakiej to szkole dają takie zadania, że masz robić układ złożony nie mając pojęcia o podstawach ? To takie budowanie od dachu ? Zasilacz stabilizowany daje 5V bez dodatkowych elementów, na płytce trzeba dać dodatkowy filtr, np 220 uF/10V i 220 n (np. typ MKT) równolegle, dodatkowo przy każdym układzie cyfrowym powinien być kondensator...
Dzieki za NIEpomoc. Program skończony. Wygląda troszke nie schludnie bo nie są porobione pętelki ale to kwestia przerobienia go. Ważne że działa jak chcialem. Pozdrawiam [syntax=asm] SEG_ON EQUP1.6;włączenie wyświetlacza 7-segm. LEDEQUP1.7;Dioda TEST podłączona do P1.7 ;Stałe używane w programie - kody włączonych diod D1EQU00000001B ;1 DIODA D2EQU00000011B...
Dzieki za NIEpomoc. Program skończony. Wygląda troszke nie schludnie bo nie są porobione pętelki ale to kwestia przerobienia go. Ważne że działa jak chcialem. Pozdrawiam [syntax=asm] SEG_ON EQUP1.6;włączenie wyświetlacza 7-segm. LEDEQUP1.7;Dioda TEST podłączona do P1.7 ;Stałe używane w programie - kody włączonych diod D1EQU00000001B ;1 DIODA D2EQU00000011B...
płytka zerująca końcówka zerująca gigabyte dioda dioda
wirtualny kabel audio chemia przetrwanie przebarwienia kolorów
prostownik tyrystor biała poświata telewizor
Sharp Aquos cztery mignięcia diody – nie włącza się, błąd zasilania lub podświetlenia Canon TS3400: Rozwiązanie błędu E6 w drukarce