Witam wszystkich, w tym temacie wyjaśnię wam jak można flashować https://obrazki.elektroda.pl/5707779400_... Osobiście oceniłbym, że trudność flashowania OpenBeken do tego urządzenia jest dość wysoka w porównaniu do innych inteligentnych wtyczek, więc możesz chcieć ponownie rozważyć. W każdym razie, upewnij się, że przeczytałeś ten...
Ten rejestr CTRLC jest chyba ogólny ale coś nie mogłem dobrać się do wybranego pinu ,którym w moim przypadku jest PA2 to chyba powinno kryć się pod nazwą "CMP2OV" . Próbowałem TCA.SINGLE.CMP2OV = 0; i TCA0_SINGLE_CTRLC = ale tutaj w ogóle nie miałem czegoś adekwatnego no i kompilator nie przyjmował moich wypocin. Tutaj pytanie czy jest to prawidłowe...
Edytowałem swój poprzedni post masz tam dokładną odpowiedź na swój dylemat: https://eduinf.waw.pl/inf/prg/009_kurs_a... "Gdy jest używany rejestr OCR1A jako wartość TOP w trybie PWM, rejestr OCR1A nie może być stosowany do generowania przebiegu wyjściowego PWM. Jednakże wartość TOP będzie w tym przypadku podwójnie buforowana, co pozwoli ją zmieniać...
Witaj, Ja też walczę z SPI od pewnego czasu, ale używam SPI w Atmega8515 jako Slave. Jeśli dobrze zrozumiałem, to masz problem z USI w Attiny26. Z tego co wyczytałem w pdf'ie i z tego co pamiętam jak się bawiłem tym prockiem, to USI można skonfigurować jako normalny SPI. Musisz tylko odpowiednio ustawić bity rejestru USICR. Nie wiem po co liczysz impulsy...
Czas uporządkować wszystkie odpowiedzi. Z każdym portem AVR'a związane są trzy rejestry Portx, Pinx i DDRx (x to interesujący nas port A, B, C, D a czasami nawet E) Rejestr Portx - w nim przechowywane są dane wyjściowe, które przenoszone są na końcówki uC jeżeli są ustawione one jako wejście. Rejestr Pinx jest rejestrem odzwierciedlajacym stan końcówek....
A czy wewnętrzne podciągnięcie to nie jest właśnie ustawienie stanu wysokiego na pinie? Wewnętrzne podciąganie to włączenie wewnętrznego rezystora podciągającego dla pinu ustawionego jako wejście. Przypadkiem w tym typie procesora służy do tego rejestr PORT, którym ustawia się stan wysoki jeśli pin skonfigurowany jest jako wyjście.
Bit ADC_SR_EOC jest u Ciebie kasowany z automatu, bo pewnie w debuggerze podglądasz sobie rejestr DR, co oczywiście liczy się jako jego odczyt, kasujący automatycznie flagę.
Przykładowo z innego kodu ;) [syntax=vbnet]TCCR1B = Bits(WGM13 , WGM12 , CS10)[/syntax] Miłego dnia
Pod ten drugi procek podpięte jest wyjście USART z XMEGA, dzięki czemu masz je widoczne w systemie jako wirtualny port szeregowy. W ten sposób możesz łatwo komunikować się z XMEGA za pomocą USART. Co do zmiany bitów portów IO - w XMEGA masz rejestry SET, CLR i TGL związane z portem, jeden ustawia bity, drugi kasuje, a trzeci zmienia na przeciwne. Dzięki...
Widze ze nawet nie znasz architektury procesora. To nie dobrze, bez znajomosci architektury nie napiszesz zadnego programu. Opis rejestrow jest w dokumentacji. DDRx to rejestr ktory ustawia funkcje portu jako wejscie lub wyjscie. Bit=1 oznacza ze pin bedzie wyjsciem, 0-wejsciem. Gdy napiszesz DDRB=1 to ustawisz pin PB1 jako wyjscie a pozostale piny...
rozkazy IN/OUT działają tylko do $60 adresu. Zamiast OUT'a daj STS UCSR0C, r16
Dlaczego przy wypełnieniu 100 % stoi, a przy 0 % coś tam się dzieje ? Co oznacza PWM o wypełnieniu 100%? To już nie są impulsy, to jest napięcie stałe. Dlatego zmieniłem preskaler na 1024 i teraz mam częstotliwość 488 Hz oraz okres 2 Nadal nie rozumiesz. Potrzebujesz częstotliwości ok. 50Hz, a nie 488Hz. Proponuję to zrobić w osobnym projekcie na timerze...
licznik 2 sobie liczy od 0 do 255 ( 8 bitowy), obecna wartość w TCNT2. w OCR2A mogę ustawić wartość do jakiej ma liczyć i co ma zrobić jak do niej doliczy? Jak wybiorę 0 0 to to porównanie jest wyłączone i licznik liczy do przepełniania się ( i ustawi flagę przepełnienia ). Jak ustawie 1 0 czyli Clear OC2A on compare match to na tym bicie pojawi się...
Układy MPS430 mają mały pobór prądu na wejściach. Pin pobiera z 1nA prądu polaryzującego, a do tego wewnętrzne obwody także pobierają mało prądu nawet jak na pinie się ustawi napięcie równe 1/2VCC. Niestety w innych jest znacznie gorzej. Nawet piny z histerezą pobierają duży prąd jak napięcie na nich jest w okolicach 1/2VCC. Często są też rejestry wyłączające...
Rozumiem że te porty ustawiasz jako wejścia (czyli DDRB = 0XFF), Drobna pomyłka bo powinno być DDRB = 0x00, czyli DDRB = 0b00000000. Niby drobiazg, ale początkującemu może namieszać. W procesorach AVR każda końcówka I/O powiązana jest z trzema rejestrami, które to decydują o przeznaczeniu tej końcówki. Te rejestry to: DDR - rejestr kierunku, ustala...
Nigdy nie używałem funkcji. Więc nie mam pojęcia jak to zrobić. Czas sie dokształcić, do Bascom jest polska pomoc z przykładami. Jaki problem? Ponadto zamiast funkcji można użyc podprogramu, choć funkcje są wygodniejsze. Ta funkcja musi być solidnie rozbudowane aby przesłać jeden znak. Bzdura, wysłanie znaku, to wysłanie bajtu do sterownika. Wyświetlacz...
4. Blokowy układ pamięci wynika z ograniczonej przestrzeni adresowej. Dany układ nie pozwala na adresowanie każdego bajtu z osobna więc stosuje się bloki np po 64 lub 128 bajtów. Zatem wybierając adres powiedzmy 32, zaglądasz do szufladki w pamięci do której możesz zapisać te 64 lub 128 bajtów. Adres 33 wskazuje na inną "pustą" szufladkę w której jest...
Owszem jeśli chcesz mieć więcej enkoderów to bardziej opłacalne będzie SPI. Wtedy FPGA może obsługiwać wszystkie enkodery i przyciski. Można by tak jak mówisz wyprowadzić linię IRQ a statusy przycisków/enkoderów wyprowadzić po SPI jako bity. [syntax=c]//____________________________... //| 0 | 1 | 2 | 3...
Mikrokontrolery można programować bez szerszej wiedzy o ich działaniu, Arduino jest chyba naczelnym przykładem, ale nie trzeba aż za to się łapać. Jeśli ten podręcznik do MSP430 tak faktycznie wygląda, to go lepiej nie ruszaj, chociaż na pierwszy przykład kodu do wklejenia i uruchomienia wpisane na sztywno 0x40 nie jest jeszcze koszmarnie złe. Drążąc...
1. Jak rozpoznać czy to wersja układu na 5V czy na 3,6V? Nie ma tam jakiś charakterystycznych oznaczeń na obudowie? Ciąg literek i cyferek, żeby można było ustalić itp. Jeśli wylutowałeś to z telefonu, obstawiam na niższy zakres napięć. TWINT ma być zerowane programowo np. przez procedurę obsługi przerwania na samym jej końcu. Zerowanie ma być zrealizowane...
Witam, Troche to zagmatwane i skomplikowane: "Ja to widzę tak: naciskam przycisk, przerzutnik na wyjsciu ustawia stan wysoki i go trzyma puki drugi raz nie nacisnę tego samego przycisku. Od przerzutnika stan wysoki cały czas utrzymuje się na wejsciu multipleksera i jest przekazywany w postaci przebiegu kwadratowego z cz. ok 30/4 czestotliwości zegara...
Atmega128 posiada 128KB pamięci flash, żeby program poprawnie odczytał dane fontów rejestr RAMPZ musi być odpowiednio ustawiony. Może problemem jest umiejscowienie tych fontów we flashu, zaczynają się na pierwszej stronie pamięci (pierwsze 64 KB), a kończą na drugiej stronie (powyżej 64KB). Program odczytuje początek fontów z odpowiednio ustawionym...
.org 0x0000 ; ustawia adres w pamięci programu rjmp reset ; skocz do etykiety ... ; wektor przerwania timer 1 .org 0x0005 rjmp led_off ; skocz do obsługi przerwania ; w tym przykładzie początek programu głównego reset: ; Jako pierwsze ustawienia stosu (w asemblerze jest to ; bardzo ważna operacja i programista nie może o tym zapomnieć)....
/.../owa pamięć może posłużyć do tworzenia a) funkcji kombinacyjnych/.../ albo c) pamięci rozproszonej (!). zgadza sie; b) rejestrów nie zgadza sie, rejestr to dodatkowy, niezalezny element slice; jesli napiszesz "if (in=2) then out <= 1" else out <= "0", to look-up table bedzie wypelniona tak, ze pod adresem '2' bedzie jedynka, pod reszta adresow...
Mozesz zuzyc jeden rejestr na przechowywanie 5 zmiennych bitowych. np r25. .DEF rBity=r25 .EQU bBit0=0 .EQU bBit1=1 itd. az do 7 No i teraz robisz sobie tak: sbr rBity,(1<<bBit0) ; ustawia bit 0 cbr rBity,(1<<bBit0) ;zeruje bit 0 sbr rBity,(1<<bBit0)|(1<... ; ustawianie wielu bitow na raz.....
Zwróć uwagę że w Twoim kodzie nigdzie nie podajesz informacji prockowi gdzie ma zmierzyć napięcie. Przed konwersją musisz w rejestr ADMUX wpisać numer kanału ADC. Robi to tą linijką programu: Korzystam z ADC0, domyślnie ustawione są na 0 czyli powinno się zgadzać. że ustawienie w tym wypadku jest domyślne jest błędne, choć kanał autor swoim programem...
Dzięki wielkie- ale to nie do mnie pisałeś. O Atomic_Block dowiedziałem się w czwartek- sprawdziłem- od czwartku jest to pierwsza wiadomość na ten temat. A wracając do tematu Fir3man- wymyśliłem taki schemat programu: #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> volatile uint8_t dol;...
https://obrazki.elektroda.pl/3928983600_... Opiszę naprawę dość rzadkiej konsoli, polegającą na odtworzeniu schematu pierwowzoru, zaprojektowaniu i wykonaniu płyty głównej i dalszych krokach niezbędnych do przywrócenia jej życia i funkcjonalności, w których zastosowałem swoją nowatorską metodę. Będzie więc coś dla miłośników retro,...
Rozwiązanie z SPI jest o tyle fajne, bo zawsze będzie wolniejsze od transmisji równoległej dla typowego uC. Więc nie potrzeby nawet sprawdzać czy bufor jest pusty czy nie. Trzeba tylko co piksel zapewnić działania w tle, w tedy uzyskamy najlepszy framerate dla rozdzielczości oraz będzie pchać z taką prędkością dane ile magistrala/DMA/SPI fabryka dała...
https://obrazki.elektroda.pl/7245713600_... BK7231 zazwyczaj programujemy przez UART - pozwala na to wgrany przez producenta bootloader. W wyjątkowych sytuacjach jednak możemy niechcący ten bootloader nadpisać - wtedy musimy użyć trybu programowania SPI by odratować zablokowany układ. Tutaj opiszę, jak działa tryb SPI w BK7231 oraz...
https://obrazki.elektroda.pl/7257498500_... Pokażę tutaj jak można łatwo uruchomić zewnętrzną pamięć Flash z dowolnym mikrokontrolerem w oparciu o programowe SPI. Omówię tu działanie i znaczenie poszczególnych operacji (odczyt, zapis, kasowanie) oraz zaimplementuję je w kodzie. Temat użycia takich pamięci wydaje mi się co najmniej...
https://obrazki.elektroda.pl/1761046600_... Pokażę tu jak uruchomić z Arduino czterocyfrowy wyświetlacz 7-segmentowy sterowany poprzez rejestr przesuwny 74HCT164 i cztery tranzystory BC546. Płytka z wyświetlaczem znów będzie odzyskana z elektrośmieci. Będzie to już kolejny temat, w którym uruchamiam wyświetlacz, gdyż omawiałem już...
Tzn. że dwa rzędy pionowe nie mogą być zapięte do tego samego rzędu poziomego? Fizycznie jak najbardziej mogą. Sens działania wybieraka krzyżowego jest mniej więcej taki: Wybierak to matryca: x poziomów = drążków na y pionów = mostków. W ramie (wybieraku) abonenckiej do poziomów podłączeni są abonenci, do pionów rejestry wychodzące i przychodzące....
http://obrazki.elektroda.pl/6569522000_1... Przedstawiam projekt urządzenia (konwertera), umożliwiającego używanie dżojstików od konsoli Pegasus na popularnym komputerze Commodore 64 (C64). Urządzenie opiera się na mikrokontrolerze Atmega 8. Motywacja Jakiś czas temu zakupiłem komputer Commodore 64. http://obrazki.elektroda.pl/1500263400_1...
Miałem bardzo podobny przypadek. Układ AntyDrop źle działał, ponieważ impulsy LO 1(U35) nie zerowały przerzutnika D ‘74’układu U21/A . Wspomniane dema działały poprawnie, natomiast praca w monitorze np. listowanie pamięci, po chwili działania i pojawianiu się błędów na ekranie powodowały blokadę Cobry. Na oscylogramie sygnał LO o amplitudzie około...
https://obrazki.elektroda.pl/9365002800_... W poprzedniej części opisałem zasadę działania i podstawy sterowania wyświetlaczy VFD, w tej części przejdę do praktycznych działań :D które większość z Was pewnie bardziej zainteresuje. Nowe wyświetlacze są stosunkowo kosztowne w zakupie i nie równoważy tego fakt że przeważnie zawierają...
https://obrazki.elektroda.pl/3680806300_... Z 30lat temu zdobyłem uszkodzony zasilacz do 3A do 36V z miernikiem wychyłowym przełączanym V / I. Nie naprawiałem, zrobiłem na 723. Z praktyki nie inteserował mnie CV przechodzący w CC, cóś zewrze, przekroczy zakres i będzie "dopalane". Chciałem szybko wyłączający U na ok. 5s z sygnalizacją,...
Raczej nie, musi byc zainicjowany. Tam nie ma typowego interfejsu RGB tylko jakis DBI (dwukierunkowy interfejs rownolegly), ktory konfiguruje sie przez spi. Nie chce mi sie czytac calej dokumentacji ILI9481 zeby sprawdzic jak sa ustawione rejestry domyslnie. Bardziej sklanialbym sie do tego co ci podalem - wyglada na to ze domyslnie dziala w trybie...
No właśnie po to, by zminimalizować ilość użytych pinów i połączeń z klawiaturą. Zminimalizować na 14, kiedy da się obsłużyć 40 przycisków na 3 pinach (z użyciem 5 '165)? Albo na 6 (z jednym 4017)? Chcąc zrobić wszystko na jednym Adruino wypada policzyć, ile jest pinów, których można użyć. Zastanawiam się, jak minimalizując liczbę pinów uzyskać wykrywanie...
https://obrazki.elektroda.pl/3711757000_... Witajcie, dzisiaj przedstawię uruchomienie układu AS1115 z Arduino w oparciu o gotową bibliotekę. AS1115 to kontroler wyświetlacza 7-segmentowego (do 8 cyfr) oraz klawiatury (do 16 klawiszy) z interfejsem I2C, oferującym dodatkową linię-przerwanie dla zdarzeń pochodzących od klawiatury. Temat ten...
MiiiiM - dzięki za plik. Opiszę teraz moje przygody z pamięcią GD25Q32C, która jest zamontowana w płytce LA.MV56U.A. Żeby sprawdzić dokładniej, co w ogóle dzieje się przy starcie, podłączyłem się pod UART (115200, 8N1) i faktycznie, boot zatrzymywał się zaraz na początku i stał w miejscu. Ponieważ akurat nie miałem pod ręką programatora SPI, wykorzystałem...
Jest trochę mikrokontrolerów, które pozwalają na połączenie poprzez USB, trzeba się temu przyjrzeć - jakieś ATmegi chyba obsłużą tylko najwolniejszy tryb, i to nie wszystkie, STM32 mogą więcej. Ale najpierw trzeba dużo poczytać z opisu tego AD7768, bo on ma jakiś złożony protokół (i to niekoniecznie SPI - może poprzez SPI ustawia się tryb pracy, a dane...
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
a co się dzieje wewnątrz mikrokontrolera? Opiszesz mi instrukcje Atmega8a wraz z tym jak to działa, co się dzieje z układem mikrokontrolera? Oczywiście! Omówię, jak działają poszczególne instrukcje Atmega8a w kontekście podanego kodu asemblera oraz jak wpływają one na funkcjonowanie mikrokontrolera. Kod asemblera: ``` sbi DDRC, 0 sbi PORTC, 0 sbi DDRB,...
Witajcie. Jutro zacznę tu tworzyć rozległy temat o modowaniu laptopów T61 i T61P. Tworzę ten zarys tematu by upewnić się, że to jest prawidłowe miejsce na forum do napisania takiego dokumentu. Jeżeli nie jest, proszę o pokierowanie w lepsze miejsce. Modyfikacje obejmować będą: - zdjęcie whitelisty sprzętu, - odblokowanie transferu sata II dla głównego...
http://obrazki.elektroda.pl/8000762600_1... W większość projektów, które realizował autor tego poradnika w oparciu o Raspberry Pi wykorzystywał on piny GPIO jako wejścia i wyjścia cyfrowe. Wyprowadzonych na płytce RPi jest 17 takich pinów. Co zrobić jak potrzebujemy więcej? Najprostszym sposobem zwiększenia liczy wejść i wyjść cyfrowych,...
Jeżeli to jest np. atmega328 to zamiast definiować strukturę z jednym polem Flagi użyj rejestr GPIOR0. [syntax=c]#define FLAGI GPIOR0 #define FLAGA_CZAS GPIOR00 #define FLAGA_TEST GPIOR01 // itd. FLAGI &= ~(1 << FLAGA_CZAS); // zerowanie bitu FLAGI |= (1 << FLAGA_CZAS); // ustawianie bitu[/syntax] Ten rejestr znajduje się w pierwszych...
Po resecie MCP ustawia rejestr CANCTRL &B11100111 Sygnał na wyjściu zegarowym pojawia się kiedy : 1. MCP jest po resecie przed programowaniem. 2. Kiedy uaktywniasz wyjście zegarowe ustawiając odpowiednio CANCTRL str.58 PDF. Po twoim opisie wygląda że MCP oczekuje na programowanie po SPI . Czy bedziesz mial mozliwosc odpisania do poludnia? Chyba się...
(at)Piotr Piechota Ja robiłbym coś w stylu: [syntax=c] static inline uint32_t bitfield_update(uint32_t bf, uint32_t mask, uint32_t value) { return (bf & ~mask) | (value & mask); } .... const uint32_t mask = RCC_PLLSAICFGR_PLLSAIN | RCC_PLLSAICFGR_PLLSAIP | RCC_PLLSAICFGR_PLLSAIQ | RCC_PLLSAICFGR_PLLSAIR; const uint32_t value = 192 // N=192...
Bootloader przestawia wektory przed skokiem do softu użytkownika więc wydaje mi się że nic dodatkowo nie trzeba robić poza kompilacją pod 0x08001000. Niestety. CubeMX robi to tak że ustawia na początku rejestr VTOR (funkcja SystemInit): [syntax=c] SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ [/syntax]...
ustawia enkoder sharp ustawia falownik ustawia
zaschnięta głowica drukarki epson morele montaż triak bosch
bateria parkside licznik zdalnego odczytu
Elektryczny wózek inwalidzki 24V a napięcie 25V Wózek inwalidzki z baterią 29.2V a działanie przy 24V