Wybór rodziny zależy od zadania: 1. C51 (8-bitów) pozwala bezpośrednio wykonywać operacje na pojedynczych bitach, ale tych bitów jest niewiele (RAM i peryferia). Stale są w produkcji różne uC z rodziny C51, które mają indywidualnie adresowane bity - obszar RAM od 0x20 do 0x2F i każdy SFR z adresem 0bxxxxx000 (np. ACC, B, IPx), czyli nie spełnia warunku...
Takie samo? To czemu w pierwszej linijce przesuwasz o 0 pozycji, a w drugiej o 16? Dla jednego to żadna różnica, dla innego będzie to problem i dodatkowy kod. Każdemu według potrzeb. Poza tym naprawdę nie rozumiem problemu - nie chcesz to nie używaj, przecież nie płacisz za to żadnych dodatkowych pieniędzy. Ktoś będzie chciał użyć - użyje. Ktoś nie...
do zmiennych takich jak PORTx, PINx,DDRx podchodzi się w sposób bitowy (atomowy) Tak dla ścisłości atomowy IMHO nie oznacza dostępu bitowego. Mówimy o jakiejś operacji, że jest atomic (atomowa) jeśli jest niepodzielna, nieprzerywalna.
No i brakuje wspomnienia o tym, jak ważne jest stosowanie dostępu atomowego - Twoja biblioteka do obsługi bufora kołowego jest pod tym względem niebezpieczna ;)
Nigdzie nie widzę definicji PINCx, a więc zakładam domyślne pochodzące z avr/io.h (iom8.h): /* PINC */ #define PINC66 #define PINC55 #define PINC44 #define PINC33 #define PINC22 #define PINC11 #define PINC00 Tak więc są to stałe zdefiniowane jeśli dany pin istnieje, zawierają numer bitu który należy sprawdzać. Nie są to marka do sprawdzania stanu pinu...
Pomocny artykuł: https://ucexperiment.wordpress.com/2012/... Zastanawia mnie dlaczego takie kombinacje z korygowaniem co jakiś czas licznika millis.Nie prościej byłoby użyć trybu CTC z przerwaniem dokładnie co 1ms? Dodano po 9 zaciekawiła mnie funkcja millis() Do czego chcesz użyć millis? Do odliczania...
Zdaję sobie z tego sprawę. Zdaję sobie także sprawę że jeśli ktoś jest dłużej w temacie to niektóre rzeczy wydają mu się trywialne. Inaczej jest gdy ktoś zaczyna i co chwile ma pod górę. Dobra jest wtedy jakaś konstruktywna podpowiedź. Na stronie 142 : I/O data bitwise handling . Z którego wynika co napisałem w poprzednim poście. Do kasowania / ustawiania...
Przy okazji zapytam: może mi ktoś wyjaśnić co oznacza bit-banding? Bo z dokumentacji STMa nie mogę do tego dojść. I jeszcze dostęp atomowy, bo według nich to dostęp do pojedynczych bitów, a zawsze myślałem że to operacje nieprzerywalne.
Pokaż przynajmniej jak wygląda to wyświetlanie. Pamiętasz, że do twoich zmiennych w programie musisz zapewnić dostęp atomowy, poprzez zastosowanie sekcji krytycznych? Akurat w przerwaniach przypadkiem robi się to automatycznie, ale w pętli głównej programu już nie.
Pętli się dalej. Przerwanie jak sama nazwa zskazuje przerywa wykonywany kod, realizowany jest kod przerwania, po czym powrót następuje w dokładnie w to samo miejsce - czyli do pętli. Natomiast to co chccesz zrobić wcale nie wymaga przerwań, a nawet zrobienie tego na przerwaniach byłoby niepotrzebnym kłopotem. Poczytaj o wskaźnikach, w tym wskaźnikach...
Dziękuje za odpowiedź. Tak to by się zgadzało, że za odpowiedni kod odpowiada w tym przypadku odpowiednia konfiguracja kompilatora. Czy mógłbyś zasugerować jakie ustawienia (oprócz oczywiście stopnia optymalizacji) należałoby wprowadzić w kompilatorze aby wygenerować taki "atomowy" kod jaki uzyskałeś. Samo włączenie optymalizacji (-Os) za bardzo mnie...
Chciałbym coś doprecyzować, bo nie do końca rozumiem mechanizm działania LDREX i STREX. Patrzyłem na stackoverflow: http://electronics.stackexchange.com/que... i do samego ARMa, gdzie jednak tlumacza to wszystko nieco inaczej http://infocenter.arm.com/help/index.jsp... Mam...
W przedstawionym przez ciebie przykładzie istotnie można zapomnieć o atomowości i volatile. Jest to jeden z wyjątków o których pisze kol. Freddie Chopin. Jednak zawsze warto dokładnie przemyśleć mechanizm dostępu do danych. Z drugiej strony - być może atomowy w takiej sytuacji będzie musiał być dostęp do samego wskaźnika. Jeśli będzie on na AVR 2-bajtowy,...
Hmm, w sensie, że po ruchu o każdy piksel badamy czy kulka nie styka się z punktem przeszkody i jeśli tak, to od tego punktu wykonujemy odbicie? Idea fajna - rzeczywiście wtedy jedna dobrze napisana funkcja załatwiałaby wszystkie odbicia - w tym od przeszkód ustawionych pod kątem, które na razie zostawiłem na później... Tylko zastanawiam się nad implementacją...
Chciałbym jeszcze coś dodać, bo moim zdaniem zapotrzebowanie na RAM to nie jedyny problem w przypadku zagnieżdżania przerwań. Nie znamy programu, więc trudno przewidzieć, czy sprawa dotyczy tego konkretnego przypadku. W przypadku zagnieżdżania przerwań należy jednak pamiętać o pewnych zasadach. Procedury obsługi przerwań, które ustawiają globalną flagę...
Wątek nie ma swojej przestrzeni adresowej. Wątek posiada tylko odrębny stos na zmienne lokalne. Prawdopodobnie Twoim problemem jest synchronizacja wątków i atomowy dostęp do zmiennych.
Bo to bardziej skomplikowane jest - ty chcesz od tyłu wprowadzić multitasking. A to nie takie proste. Albo zrób obsługę silnika na przerwaniach, a w programie głównym modyfikuj tylko flagi sterujące wykonaniem kodu w przerwaniu, albo zmień menu tak, aby wysyłało komunikaty do kolejki. Zawsze przy takiej okazji polecam: http://www.sics.se/~adam/pt/...
(at)marek-czarny Nie rozwiązałeś problemu, tylko go co najwyżej ominąłeś w niezbyt elegancki sposób. Poza tym ciągle masz problemy z atomowym dostępem do zmiennych, w efekcie program tylko pozornie działa poprawnie.
Tzn. nie atomowe było by przepisywanie po jednym bicie, a nie sama pojedyncza operacja "BITBAND(&GPIOA->ODR, 5) ^= 1;" ? Najpierw musi odcztać ten bit, potem zxorować a następnie zapisać. Pomimo tego że zapisałeś to w C w jednej operacji nie oznacza to że tak to będzie zrealizowane w programie. Czyli operacja or, z bit bandingiem: "BITBAND(&GPIOA->ODR,...
Rozumiem że w trybie freeruning częstotliwość próbkowania będzie taka sama? Pamiętaj też, że przy zmiennych do których dostęp nie jest atomowy (np. uint16_t) istnieje konieczność zapewnienia atomowości przy możliwym jednoczesnym dostępie z dwóch wątków (gównego i ISR). Także dostęp w kodzie programu do adc_data powinieneś zamknąć w ATOMIC_BLOCK. tzn....
W takim razie nie mam pojęcia jak mógłbym go użyć:) jest to może gdzieś opisane? Jakaś instrukcja obsługi? P.S. Podobają mi się także nowe terminy jakie sie pojawiają, jak "atomowy dostęp":) Bardzo fajne!
BoskiDialer : rzeczywiście były dość częste zmiany w opóźnieniach, ale zmieniłem zmienną time na 8bitową i teraz wszystko jest OK :). A jak się robi atomowy dostęp do zmiennej?
Po pierwsze, o czym już ci kiedyś pisałem - enkoder koduje pozycję w kodzie Graya. Aby więc uzyskać informację o zmianie położenia enkodera musisz zdekodować sygnał. Nie muszę dodawać, że czynisz to źle. Kolejna sprawa - musisz zadbać o atomowy dostęp do zmiennej pozycja0enkodera - volatile nie załatwia wszystkiego. Dostęp do tej zmiennej z poziomu...
Wszystko odbywa się niezależnie od innych fragmentów kodu, więc masz namiastkę programowania wielowątkowego. No to coś takiego mam teraz własnie na maszynach stanów zrobione - aczkolwiek tam gdzie jest dostęp do sprzętu np. na jednym SPI mam obsługę karty SD i wyświetlacza GLCD muszę dbać o to, żeby obie procedury nie wchodziły sobie w paradę, stąd...
Źle obsługujesz enkoder. Poczytaj o enkoderze kwadraturowym - enkodery nie działają tak jak założyłeś, że na jednym pinie masz impulsy jak kręcisz w jedną stronę, a na drugim, jeśli kręcisz w przeciwną. Używają najczęściej kodu Gray’a - więc zacznij od poprawnej obsługi enkodera. Druga sprawa - wewnętrzne podciąganie zapewnione na portach ma zbyt dużą...
Dobrze kombinuję? Dobrze. Czyli jak wyłączę przerwania przed modyfikacją (asm ("di")), dokonam modyfikacji, a potem włączę, to nie ma prawa się nadpisać, tak? tak Czyli co - lepiej w tej sytuacji byłoby korzystać ze zmiennych globalnych zamiast pól bitowych? Trochę marnotrawstwa, ale większa pewność? Musisz mieć po prostu atomowy dostęp (; Czyli albo...
Ale właściwie co chcesz uzyskać? Jeżeli tak obwarujesz wszystkie dostępy we wszystkich wątkach, to oczywiście dostęp będzie się realizował atomowo/kolejno (jeden wątek na raz), ale nie musi to być najefektywniejsze rozwiązanie. No i oczywiście dołożenie sekcji krytycznej nie wpływa w ogóle na fizyczną możliwość dostępu do zmiennej.
'Działa od 30rpm do 300000rpm $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Timer1 = Timer , Prescale = 64 Config Int0 = Rising Dim Flaga As Byte Dim Text As String * 10 Dim Wynik As Single Dim Zmienna As...
Gdybyś czytał uważnie, to wiedziałbyś, że: - Firma, w której pracowałem nie widział potrzeby przejścia na ARM. - ARM LPC używałem przed 2005 rokiem 1. No to znaczy tylko tyle, że przez cały okres zatrudnienia nie było jakiegokolwiek uzasadnienia do stosowania więcej niż 8bit. Chyba lepszej rekomendacji nie mogłeś dać. Druga sprawa, zanim ARM na dobre...
Z perspektywy tej dyskusji wyjaśnia się cel stosowania przez niektórych producentów pary rejestrów do ustawiania/ kasowania bitów, mimo bit bandingu. Przykładowo PIOx_BSRR/BRR u ST. Konsekwentne pociągnięcie dalej i mapowanie każdego rejestru na REG_CLR, REG_SET i REG_INV jak mają PIC32 wydaje się więc logiczniejsze jako sposób na atomowy dostęp do...
Wyliczenia są mniej więcej poprawne - mniej więcej, bo dla dokładnych wyliczeń należałoby uwzględnić opóźnienia wprowadzane przez wykonywanie programu. Dla dokładnego samplowania używa się np. timera, niemniej przy zewnętrznym ADC jitter kilku taktów i tak będzie. Przekłamania wyniku mogą byc spowodowane np. sposobem dostępu do zmiennej wynik. Skoro...
Moim zdaniem różnice są ogromne. Nawet nie chodzi o peryferia jako takie, tylko konsekwencję w dostępie do nich. Wszystkie peryferia masz powielone na każdym porcie, każde jest obsługiwane tak samo. Rejestry opisujące peryferia masz pogrupowane w struktury, dzięki czemu możesz przekazać adres bazowy, a te same funkcje będą operować na dowolnym porcie...
No dokładnie, o poolingu zapomnij. Najprościej zrobić tak jak pisze Mirek, bufor (niekoniecznie cykliczny), ale po prostu tablicę zawierającą wskaźniki do kolejnych komunikatów. W procedurze obsługi przerwania TX, wysyłasz bieżący komunikat, jeśli wysyłka jest zakończona to sprawdzasz czy w tablicy jest jakiś oczekujący i rozpoczynasz jego wysyłkę....
Chodzi o to, że zmienna volatile cały czas odczytywana jest z pamięci i ładowana do rejestru a zmienna bez volatile, ładowana jest tylko raz? Czy dobrze myślę? Dobrze myślisz. Ogólnie zmienna globalna volatile ma sens w sytuacji, gdy ze zmiennej korzystasz jednocześnie w programie głównym i w procedurze obsługi przerwania. W Twoim przypadku, gdy korzystasz...
p.s. W systemach wbudowanych raczej unika się deklarowania zmiennych jako int. Najlepiej deklarować zmienne jako uint16_t, int8_t itp. W systemach 8-bitowych użycie zmiennej typu uint16_t nie gwarantuje atomowego do niej dostępu.
Niesądzę, chyba żaden znany mi kompilator nie optymalizuje zmiennych bool w ten sposób, aby zajmowały kolejne bity bajtu. Czy dostęp do zmiennej typu bool jest atomowy, czy nie to już zależy od architektury i kompilatora. Niesądzę, aby standard C++ to precyzował. Oczywiście uniwersalnie byłoby zabezpieczyć takie dostępy mutexami.
[syntax=C]GPIOE->ODR ^= GPIO_Pin_8;[/syntax] To jest zła praktyka. RMW na rejestrze ODR to proszenie sie o kłopoty, a juz w szczególności, że to się robi w przerwaniu. Po to są odpowiednie rejestry do atomowego dostępu do pinów, żeby nie praktykować RMW. [syntax=C]GPIOE->BSRR=(GPIOE->ODR&...
Popatrz na atxmegę, też na nią przeszedłem i jest to nowa jakość, peryferii full, zegar łatwo ustawić, fuse bity nie straszą, 3 poziomy przerwań, timerów full no i eventy, na tym można cuda robić. Ale Xmega, w stosunku do ARM są drogie i mają mało RAM. Nadal to 8-bit przez co trzeba walczyć z atomowym dostępem do zmiennych 16 czy 32-bit. Nie ma też...
Źle rozumiesz pojęcie atomowości przy dostępie do zmiennej. Instrukcja "v--" składa się z dwóch odwołań do zmiennej v: odczytu oraz zapisu. Dostęp jest atomowy, nie cała instrukcja zawierająca ten dostęp. To co zacytowałeś mówi mniej więcej tyle, że odczytując zmienną mającą 4 bajty kompilator użyje instrukcji ldr aby odczytać całość w jednej instrukcji,...
Zmiana optymalizacji na O2 usuwa problem w każdym z przypadków. Tak samo zrobienie static tego longa problem rozwiązuje, również przy optymalizacji O1. na O1/2, natomiast słychać pyrkanie i inne niepokojące objawy w dźwięku. Z opisu wynika, że masz coś nie tak w programie, niestety bez wnikliwego przejrzenia całości nie ma szans, aby ci pomóc. W pewnych...
Wydaje się być oczywiste... Chodzi może nie tyle o atomową prędkość, co bezpośredni dostęp do każdego bitu. To makro w takim razie nie ma prawa występować w programach gdzie dostęp do portów odbywa się z kilku poziomów set i clr działają na podobnej zasadzie jak toggle czy właśnie bezpośrednio pracują na konkretnym bicie?
Prawdopodobnie adres przekazywany w argumencie src jest nieparzysty. Co jest bez znaczenia, bo ARM Cortex-M3 (i M4 oraz M7) obsługują niewyrównany dostęp do RAMu (choć niekoniecznie atomowo i niekoniecznie szybko, co nie ma znaczenia w tej akurat sprawie). Używasz w ogóle czegoś innego niż ARM Cortex-M0? One od innych układów nie różnią się jedynie...
w jednej atomowej operacji zmienić np z 011 (4) na 100(5). Niedopuszczalne są stany przejściowe 000 czy 111 Bez rozbicia tego na kilka instrukcji niestety się nie da. przecież z punktu widzenia wyjścia ta operacja będzie atomowa: Dopóki w grę nie wejdą przerwania i możliwość niezależnego dostępu do pozostałych bitów portu. Wtedy trzeba to opakować...
Oglądłem kilka lat temu reportaż, w którym polski pilot mówił, że w ich bazie był specjalny oddział'ruskich',który jakby co miał podczepić do naszych samolotów taktyczne bomby atomowe. Piloci nie mieli dostępu do bomb,ani kontaktu z tamtymi. Oni mieli tylko lecieć-wykonać rozkaz oczywiście. Ile w tym prawdy ?. Ale ja uważam to za całkiem możliwe
W dalszym ciągu uważam że energii odnawialnej mamy pod dostatkiem tylko trzeba odsunąć pazerność koncernów i odblokować dostęp do wiedzy na ten temat
Trochę nie na temat, ale nie uważasz, że nowe Megi to pudrowanie trupa? Chodzi o stosunek ceny do możliwości. Nie dziwię się, że Mega nie ma DMA, bo i niby po co? Gdzie stworzyć bufory dla DMA, np w przypadku LCD? Jak sensownie wykorzystać RTOS? Na te zadania potrzeba RAM. Jedyny sensowy Mega to 1284 z 16kB RAM. Tam DMA coś by dało a tak mamy przerwania...
Problemem są twoje zmienne adcresult. Jak zwykle to bywa zapomniałaś dodać magicznego modyfikatora volatile - bez tego optymalizator pzyjmuje te zmienne za stałe i pod tym kątem optymalizuje pętlę w main. No i robi się kaszana. Poza tym diodami świecisz po 50ms, niezły cyborg z ciebie, skoro to ci wystarcza :) W pętli nie ma też sensu inicjować za każdym...
Dobry żart tynfa wart. Czym od tego węgla i gazu będą odchodzili? Uranem którego wydobycie w USA jest tak małe, że ledwo da się dostrzec na tej grafice? Na rynku USA i Kanady operatorzy elektrowni jądrowych sprzedają energię na równych prawach dostępu do rynku. Pod tym względem rynek USA+Kanada jest niewiarygodnie wręcz liberalny w porównaniu z utopią...
Mało tego, na pewno znalazł by się nie jeden bogaty psychopata gotów nawet kupić sobie statek tylko po to, by mieć legalny dostęp do paliwa jądrowego. Resztę możemy sobie wyobrazić.
Absolutnie nie! Przede wszystkim flaga przerwania nie nadaje się do blokowania przerwań i nie uniemożliwia zgłoszenia przerwania. Przecież ta flaga tylko sygnalizuje, czy przerwanie zaszło. Jeśli zaszło i dane przerwanie jest odblkowane (flaga enable), to MCU natychmiast je obsłuży, więc kiedy niby program miałby ją skasować? Co więcej, często wejście...
Witam czy ktoś potrafi podać przyczynę dlaczego zmienna "czas" raz przyjmuje wartość 1000 a raz 768 w tym programie? Problem tkwi w tym, że nie zapewniasz atomowego dostępu do zmiennej czas (inkrementowanej w przerwaniu) podczas porównania: Zmienna czas jest tu porównywana ze stałą 1000, która hexadecymalnie jest równa 0x03E8. Jeśli zmienna ma wartość...
Pogłębiający się kryzys energetyczny, który uderza w Europę, obnażył „ograniczenia” rynku energii elektrycznej i wymaga „awaryjnej interwencji”, aby obniżyć gwałtownie rosnące ceny, powiedziała przewodnicząca KE Ursula von der Leyen. Odnośnik do źródła: https://www.euronews.com/my-europe/2022/...
Proszę bardzo lecz jetem pewien, iż nie wniesie to nic. Skoro tak twierdzisz, to po co w ogóle pytać? Masz błąd o którym Ci pisałem. Tyle że wtedy pisałem, że "warto na przyszłość", a teraz mówię że masz błąd. To: if (tflags & USART_FLAG_TXE) wykona się niezależnie od tego czy masz włączone przerwanie czy nie. A wiec występuje u Ciebie (jednak)...
Czy dobrze rozumiem, że dostęp do pamięci flash oraz EEPROM w xmegach zawsze wykorzystuje kontroler NVM? Zawsze wykorzystuje hardware NVM, ale niekoniecznie modyfikuje stan tego układu. Odczyt FLASH odbywa się bez konieczności modyfikacji NVM (o ile mówimy o odczycie bajtów/słów), więc dostęp do EEPROM nie powinien tu robić problemów. Problem zaczyna...
Powrót małorolnego człowieka, a moderator burdel teraz zrobił. Zamiast zostawić potrzebne posty, to temat przeniósł do ??? Jaki mikrokontroler wybrać do... ??? Co to ma wspólnego z założonym tematem ? Jakiś nieogarnięty w temacie... Tylko spójrzmy na to obiektywnie - co kolega tymon_x sprawdził ? żeby nie było niedomówień! Otóż sprawdził (przepraszam...
Raczej tak: Kolega ma jak najbardziej rację, tylko że oczekiwanie wewnątrz funkcji eeprom_write_byte() ma miejsce tylko wtedy, kiedy nie został zakończony poprzedni zapis, więc wszystko zależy od częstotliwości zapisu. Może błędnie założyłem (nie widząc reszty kodu), że zapis nie jest na tyle częsty, żeby funkcja eeprom_write_byte() musiała czekać....
http://obrazki.elektroda.pl/2772705400_1... Gdy Alice Pyne opowiada o dawaniu dzieciom w szkołach próbek "skrystalizowanych struktur wirusa" można odczuć delikatne drżenie serca. Wydaje się że już dostatecznie pogrążyliśmy następne pokolenie bez oddawania im w ręce narzędzi do prowadzenia wojny biologicznej. Opisany wirus to wirus mozaiki...
bog.op ! Wierzę w Twój sukces. Jestem gotów uruchomić dużą sieć handlową dla dystrybucji silników magnetycznych. Oczekuję konkretnych propozycji sfinansowania budowy sieci i współpracy z producentami Twoich silników. Nie wiem, skąd Ci się bierze taka ciągota do stosu? W XXI wieku jedyne działajace (na rozsądnie wiekszą skalę) stosy, to stosy atomowe....
jeżeli pole elektromagnetyczne jest odpowiednio duże można zakłócić pracę elektronicznych układów w samochodzie.odporność na zakłócenia jest związana z ekranowaniem układów elektronicznych, w różnych samochodach jest lepiej lub gorzej. niestety do zakłócenia jest potrzebna duża ilość energii,mmożna to sprawdzić jeżeli ma się dostęp do bliskiej okolicy...
Nie cały proces wyciagania danych z kolejki jest atomiczny, a tylko modyfikacja jednej newralgicznej zmiennej.... Zgodnie z rozumowanie kolegi jeśli jakiś blok jest atomowy w części, to znaczy, że nie jest atomowy wcale. Ciekawe rozumowanie. No tak, zależy - od tego kto jest producentem, a kto konsumentem. Gdy producentem jest przerwanie (o to mi chodziło),i...
Jeżeli PORTA leży w obszarze IO i instrukcji sbi/cbi to łatwo problemu uniknąć zmieniając na raz tylko jeden bit w porcie. W przeciwnym przypadku tak jak zrobiłeś dostęp do PORTA należy w głównej procedurze realizować atomowo. Dzieje się tak dlatego, że zmiana stanu portu realizowana tak jak opisałeś powoduje odczyt jego stanu, zmianę i zapis nowej...
Poczytałem trochę o atomowym dostępie i o ATOMIC_BLOCK. Wynikało by że: jeżeli moja zmienna war_pom jest testowana w warunku logicznym to trzeba w sposób atomowy przepisać jej zawartość do zmiennej pomocniczej. Lecz program po wgraniu zachowuje się nadal tam samo, czyli: mogę zwiększać wartość zadaną ale często gdy kręcę enkoderem to wartość jest nie...
Jeśli nie zablokujesz przerwań na czas dostępu do flag z poziomu aplikacji, to jeśli ta sama komórka pamięci będzie modyfikowana z poziomu handlera przerwania, to zawartość zmiennej się całkowicie "rozjedzie". Dlatego, że operacje te nie będą atomowe. Problem rozwiąże umieszczenie zmiennej w obszarze dostępnym dla cbi/sbi, bo wtedy zmiana stanu flagi...
Dzieki rowniez za motywacje bo gdy czasem widze tutaj niektorych kolegow, wydaje mi sie ze jestem jakas tepa strzala. Generalnie do ekperymentowania wykorzystuje narazie wykopana z czasow studiow plytke [url=http://www.kamami.pl/dl/stm32butter... ta docelowa nie jest jeszcze gotowa (bo nie opanowalem narazie nawet prostych rzeczy na tym...
Jak już ci kiedyś pisałem blok z forceon zawsze kończy się z włączeniem przerwań, a nie przywróceniem ich stanu sprzed ATOMIC_BLOCK, stąd też działa to szybciej bo nie trzeba zapamiętać ich poprzedniego stanu. RESTORESTATE z kolei najpierw zapamiętuje stan przerwań, blokuje je i na koniec odtwarza zapamiętany stan - może się więc zdarzyć, że po zakończeniu...
Zastosuj dwa bufory. Jeden do odbierania danych w przerwaniu, a drugi do pobierania znaków do wyświetlenia na LCD. Teraz po odebraniu jednego ciągu LCD zaczyna wyświetlać co trwa z 50ms. Jeżeli podczas wyświetlania zacznie przychodzić nowy text to zacznie on nadpisywać bufor i na LCD będziesz miał krzaki. Więc zastosuj dwa bufory. Odbieraj do jednego....
Witam ;) mam pytanko w związku z ochroną przed promieniowaniem beta. Czy pole magnetyczne jest w stanie zatrzymać lub częściowo powstrzymać promieniowanie beta? Z ołowiem wole się nie bawić bo może on być źródłem promieniowania wtórnego ;/ Na wiki zaś przeczytałem że do osłony przed promieniowaniem beta wykorzystuje się aluminium lub inne materiały...
Ponieważ dopuszczalne są też pytania z dziedziny, być może tych niemądrych Bynajmniej nie jest to żadne "niemądre" pytanie. Jest bardzo dobre i pokazuje właśnie jak bardzo zmitologizowane są RTOSy. czy taki STM32G070RBT6 z 36 KB ram oraz 128 KB flash (w detalu ok. 5.5 zł) to już się nada czy nie do RTOS? Jak najbardziej. Ilość flash jest zwykle mało...
Przerażający jest poziom edukacji technicznej w Polsce. Cofanie się. W1998r. poziom rozwoju a nawet struktura przemysły Polski i Korei Południowej był bardzo podobny. Minęło 30 lat. Korea Południowa w rozwoju jest tam gdzie jest i to bez strumienia pieniędzy z UE na ścieżki rowerowe i aquaparki. Budują i planują kolejne atomowe bloki energetyczne. Co...
Widzę, że powoli pomysł społeczny rusza. No dobra, to ja zbiorę troszeczkę linków na temat układów scalonych i innych elementów systemu. Co do pamięci ROM w środku. Raczej nie sądzę, żeby coś wyszło z dostępu do tej części układu, bo pewnie ściśle tajne informacje tam przechowują (hehe, pewnie kody dostępu do wyrzutni atomowych), a tak na serio, to...
Nie działa Ci, bo nie przeczytałeś dokumentacji... http://obrazki.elektroda.net/0_118799421... Flagi przerwań czyści się przez wpisanie do nich logicznej jedynki. Trochę może paradoksalnie to wygląda, ale ma swoje logiczne uzasadnienie. Chodzi o to, że czyszcząc flagi w ten sposób da się to zrobić o wiele szybciej i co najważniejsze - bezpieczniej....
No... to dość szeroki temat, projektowanie tabel, relacji itp... nawet nie zdajesz sobie sprawy jak bardzo źle zaprojektowane tabele potrafią utrudnić życie... Napisz co konkretnie ma się znaleźć w tej bazie (tzn stan magazynu surowców materiałów do produkcji, narzędzi czy będzie to coś w rodzaju sklepu), czy będzie tam dokumentacja tych części ? czy...
Ok, ale raczej nie mogę zostawić grzejnika włączonego, żeby sam działał np. przez tydzień jak mnie nie ma na działce. Ostatecznie mam wrażenie, że gra nie warta świeczki i chyba usunę z działki wszystkie rzeczy, które mogą się zniszczyć przy dużych mrozach i nie będę ogrzewał. Gaz - niebezpieczny. Prąd - faktycznie sprawdziłem i wiatraki mało co dadzą...
Różnice rzędu 2 instrukcji jakoś do mnie w tym przypadku nie trafiają. Czyli różnice czterech czy sześciu bajtów flasha (zakładam że na AVR jedna instrukcja ma 2 bajty) do Ciebie nie trafiają, ale różnica jednego bajta w RAM już trafia? Widzisz niekonsekwencję? Ja tu data race nie widzę. Czy jest coś polem bitowym czy int-em. (i abstrahujmy od tego...
Audyt TrueCrypta był zamówiony przez autorów. (Zresztą odbyło się tylko pół audytu). Po czym projekt umarł... I to jest tak naprawdę największa wada systemów/oprogramowania Open Source. Mają większą łatwość znikania z rynku niż produkty komercyjne firm o ugruntowanej pozycji. Po czym projekt natychmiast znalazł grupę ludzi, którzy chcą go kontynuować...
Tyle czasu zajęło USA aby zaczęli coś mówić że mogą zrezygnować z paliwa rosyjskiego. I nie o cenę chodziło. Zwyczajnie tego nie ma w najbliższych sklepach z uranem. Urządzeń do wzbogacania uranu także nie ma w sklepie za rogiem. Przypominam że USA miało już rozpracowane wzbogacanie uranu oraz bomby atomowe zanim 'Ruskie' w (drogą kradzieży dokumentacji)...
Powinny być zadeklarowane jako: Proszę o podpowiedź co to znaczy Obiekty typów atomowych umożliwiają wykonanie na nich podstawowych operacji (przypisania i odczytu wartości) w niepodzielny sposób oraz zapewniają odpowiednie uporządkowanie operacji dostępu do pamięci. W Twoim programie do tych zmiennych odwołują się procedury obsługi przerwania oraz...
Cześć, Mam drobny problem. Chciałem na szybko wykonać sobie tester silników krokowych. Użyłem tego co pod ręką wygodne do szybkiej realizacji testera (a że armata na wróble wyszła to mało istotne). Na panelu tft jest sobie slider do regulacji prędkości (parametr speed w zakresie 0-500). Dalej wpisuję ten parametr do rejestru OCR3 w taki sposób: OCR3...
"kontroler przerwań" nazywa się NVIC, ma coś takiego jak tail-chain przydatne gdy dwa przerwania przychodzą blisko siebie. Thumb2 - lepszy DMIPS/MHz i DMIPS/mW architektura harvard sprzętowe mnożenie i dzielenie dla procesorów ST teoretycznie pozwala na prace z prędkością 2x większą niż pamięć flash (u innych producentów pewnie też) dodatkowo u ST (u...
Twój kod jest fundamentalnie błędny. Nie możesz w sposób asynchroniczny zapisywać tablicy data w pętli głównej i wysyłać jej zawartości w przerwaniu. Pomyśl co się dzieje jeśli jednoczesny dostęp do tej tablicy uzyskuje dtostrf i przerwania - robi się sieczka. Taki dostęp wymaga utworzenia semafora lub prościej atomowo skopiować tablicę data do miejsca...
Moyshaa, dzięki za link. Ostatecznie pisze, że ten kod działa ale drażni mnie to, że nie rozumiem w jaki sposób tutaj mierzony jest okres(od rising do rising) może dlatego, że komentarzy mało :( Kod proszę umieścić w znacznikach code! Robak
jeśli nic nie przemawia , to maże wzór demokracji Pół prawdy to wcale nie jest dobre kłamstwo, znanym faktem jest że w USA dokonywano nietycznych eksperymentów z promieniowaniem jonizującym (to takie jak w elektrowniach atomowych) sprawa wyszła na jaw, a to są przeprosiny Film jest wykadrowaną wersją z tego poniżej, z którego można się dowiedzieć o...
A dostęp do wszystkiego jest tragiczny i jesteś skazany na drogie części. Za cenę takiego kota masz dobry kondensat +zbiornik 250-300L z dwoma wężownicami np. pod solar. Ale chyba nie masz wyboru. :cry: Swoją drogą gratuluje wyboru projektu bez kotłowni... Projekt tez z Afryki? Czy z Francji gdzie mają58 reaktorów atomowych...
Oczywiście użycie dwóch układów jest programowo bardziej skomplikowane. Sama wymiana danych to banał, ale pojawiają się problemy typowe dla systemów wielozadaniowych ze współdzieloną pamięcią - trzeba stworzyć mutexy, uwzględnić potencjalne miejsca powstawania zakleszczeń itd. Wyobraź sobie, że do tej samej komórki pamięci jednocześnie próbują uzyskać...
Przerwania w AVR działają w ten sposób że w chwili rozpoczęcia obsługi przerwania, kolejne przerwania są blokowane aż do instrukcji procesora RETI (tu w basicu RETURN). Nieskończona pętla w przerwaniu - czemu nie. Tylko że zakończenie takiej pętli jest możliwe tylko przez sygnał RESET. Czyli bez sensu raczej :P Sposób w jaki realizujesz obsługę wyświetlacza...
(at)markolsrz Zobacz sobie do nagłówka stdatomic.h. Znajdziesz tam funkcje rozwiązujące Twoje problemy ze współbieżnym dostępem do zmiennych. Porada niestety nietrafiona, a to z braku implementacji w AVR-libc. Oczywiście można sobie samemu to zaimplementować, lecz po co, skoro już w AVR-libc mamy atomic.h. Jedyne co można poprawić, to tak jak napisałem,...
(at)tadzik85 IMHO nie. Jeśli wynik byłby w jednym rejestrze dostępnym atomowo, to problemu nie ma. Jeśli mamy sprzętowe rozwiązanie z buforami to problemu pomimo asynchronicznej domeny zegarowej też nie ma. Asynchroniczna domena zegarowa stwarza tylko problemy z synchronizacją dostępu do rejestru. Czyli np. zapisujemy coś do rejestru, ale fizycznie...
AVE... Chiny zrozumiały dość szybko lekcję, którą zawalił i Związek Radziecki, i wszystkie kraje bloku wschodniego: nieważne, jaka jest ideologia - bez prężnej gospodarki i bez rozwoju technologii nic się nie da osiągnąć. Gdy PRL robił Juniory, Chiny ukradły używając wojskowych hakerów sporo tajemnic technologicznych bodaj Sagema, i zaczęli u siebie...
AVE... Jeśli chcemy w Polsce mieć produkcję wysokich technologii, to trzeba zachęcić zagranicznych producentów by tu inwestowali Dlaczego ciągle musimy zachęcać zagranicznych producentów by tu inwestowali? Dlaczego sami nie możemy zainwestować? Tym sposobem to zawsze będziemy wyrobnikiem obcych firm, nigdy nie będziemy mieli nic swojego. Intel podaje,...
Czy znacie jakies zarowki RGB (z mozliwosci zmiany kolory i zciemnienia, sterowanymi przez aplikacje) bluetooth albo WIFI , ktorymi mozna sterowac przez aplikacjie ale bezposrednio z telefonu. Muszę cię zmartwić. Sterowanie czymkolwiek poprzez serwery w Chinach jest odgórnym nakazem KPC. Służby wywiadowcze i zbrojne Chin chcą w ten sposób opanować...
109% sprawności tych kotłów to porównanie do tradycyjnego gdzie przyjmuje się go za wzorzec. Ten wzorzec to przykładowo 80-85% sprawności. Dodatkową sprawność osiąga się poprzez wymiennik ciepła współosiowy do spalin i powietrza. Tzw zamknięta komora spalania. Cały proces ma nadal poniżej 100% sprawności. Czy akurat wymiennik musi być "współosiowy"...
Powinno się wytwarzać z tego co jest najlepsze i najtańsze. Niestety w dzisiejszym świecie często decyduje ideologia. Z powodu nieuctwa znacznej części społeczeństwa często rezygnuje się ze świetnej technologii jądrowej. Wystarczyło nastraszyć ludzi bombą atomową. Za to rozwija się drogą i kapryśną technologię wiatrową, która nie miałaby szans na rozwój...
Mam pytanie do zwolenników EJ - jak sobie wyobrażacie budowę za dewizy w sytuacji gdy nicnierobienie w kwestii OZE będzie nas kosztowało ok. 2 mld euro rocznie ? Jak wydanie na jej budowę kolejnych mld euro lub dolarów wpłynie na kurs złotego? Dla mnie to przepis na gigantyczną katastrofę, a'la lata 90-to które wielu czytelników doskonale pamięta....
Jak na mój gust równie dobrym rozwiązaniem jest dodawanie tych sekund, chociaż gdy tylko dopcham się do miernika częstotliwości mogę wstawić trymer i ustawić i ten kwarc. Pierwszym moim projektem na µC też był zegar (na nixie). I też byłem zdegustowany tym PCF-em. Nadaje się pewnie do czegoś, ale na pewno nie jest to RTC dla amatora bez dostępu...
Szału więc nie ma. Nie ma. A z tego aku to przez ponad tydzień chałupę bym zasilał. Tak przy okazji. Zasilanie energią elektryczną samochodów wymusiłoby zwiększenie ponad dwukrotnie dostępnej mocy naszego systemu energetycznego. Po to się rozwijać powinno infrastrukturę. Budować nowe elektrownie wiatrowe, słoneczne, a nie siedzieć na węglu i ropie...
Przepraszam "informację" za zbyt pochopne stwierdzenie o jego nie znajomości zagadnień związanych z nowoczesnymi technologiami węglowymi. Niestety nie wszyscy mają dostęp do źródeł informacji a jedynie posługują się sloganem i utartymi stanowiskiem lobii atomistów reprezentowanych przez media i tzw. "szeroko pojętą opinie publiczną". Niestety nie dochodzi...
[syntax=c]#include <stdio.h> #include <stdlib.h> #include <avr/io.h> #include <util/delay.h> #include <util/atomic.h> #include "HD44780.h" #define NOSAMPLES 128 // usrednianie wyniku co 128 probek volatile uint16_t ADCwynik; // zmienna zawierajaca wartosc ADC co 128 probek void init_adc(void) { ADMUX = (1 << REFS0);...
A teraz obliczenia: Taktowanie procesowa 1MHz, preskaler 8 daje 125kHZ co przekłada się na czas impulsu równy 0,000008s . Ustawiając OCR2 na 200 nasze przerwanie będzie wykonywać się co 0,0016s co daje 625 przerwań na sekundę Problem w tym, że najprawdopodobniej bardzo rzadko spełniają się warunki porównujące wartości liczników w ifach czyli odswiez_wyswietlacz==312...
Chcesz omawiać przez telefon sprzedaż kradzionego uranu na bombę atomową czy co, że boisz się podsłuchu? ;) Takie rzeczy to raczej tylko służby specjalne robią i na pewno nie podsłuchują nikogo dla zabawy tylko w uzasadnionych przypadkach. Prywatna osoba na pewno nie ma dostępu do takich rzeczy.
Sabre ! Podziel się dostępem do źródeł Twoich informacji, podaj linki ! Wikipedia podaje dla suprkondensatorów gęstość energii 0,026MJ/kg - przypomnę że benzyna ma "tylko" 46MJ/kg, prawie 2000 razy lepiej! Dla nanoakumulatora jest 2,56MJ/kg, też benzyna 18 razy lepsza. Tabele gestości energii pokazują alternatywną przyszłość, na którą się nie zgadzamy...
atomowy dostęp atomowy dostęp bitowy energia atomowy
gwint sondy lambda silniczek regulacji temperatury mercedes rozład akumulator
zderzak naprawa zderzak naprawa
Jeep Grand Cherokee WJ 4.0 – brak podświetlenia wskazówek licznika, żarówki T5, LED, naprawa Barton Sprint 50 EFI gaśnie na wolnych obrotach po rozgrzaniu – przyczyny i diagnostyka