Jeśli WD ma być "tylko" do budzenia to się zgodzę. Przyzwyczaiłem się WD zostawiać sobie też dla bezpieczeństwa aplikacji. If WDE is set, the Watchdog Timer is in Interrupt and System Reset Mode. The first time-out in the Watchdog Timer will set WDIF. Executing the corresponding interrupt vector will clear WDIE and WDIF automatically by hardware (the...
To może mozesz sobie pozwolić na przerwanie raz na 8 sekund - watchdog interrupt. Przerwanie w AVR - ach jest b szybkie 4 takty zegara na jmp - jezeli napiszesz sobie zwiekszanie jakiegos 8 bitowego progrmaowego timerka to tez raptem pare cykli dodasz. Cięzko mi wyobrazic sobie tak krytyczną procedure aby nie mogła sobie pozwolić na powiedzmy 20 taktów...
To zastosuj ATmega88 (w tej samej cenie) - ma Watchdog: Three operating modes – Interrupt – System reset – Interrupt and system reset
Ciekawostka ... atak hakerski, backdoor, jaka przyczyna? ... testuję 16 powyższych modułów rozmieszczonych w różnych miejscach (różni dostawcy Internetu, rożne routery i oczywiście różne IP użytkowników końcowych rozmieszczonych w jednym rejonie w promieniu 10km). Łącza Internetowe od dostawców do routerów także przeróżne, od światłowodu po WiFi. Wszystkie...
No to jest to czego szukałem. Tylko teraz pytanie: Dlaczego zawartość rejestru R0 to zawiera,a nie można odczytać z MCUCSR jak jest opisane w DSie?? edit Aaa już wiem gdzie robiłem błąd. Można odczytać WDRF moim sposobem tylko przed Config Watchdog, bo ta instrukcja czyści rejestr MCU(C)SR. Wszystko pięknie jest wyjaśnione w Helpie od wersji 2.0.1.0...
Co do przerwań... to chodzi mnie o podawanie sygnału na INT0, czy należy: wybrać typ sygnału zgłaszającego przerwanie (ustawiłem na narastające) aktywowac bit I w rejestrze SREG i ustawić odpowiednią maskę w rekestrze GIMSK, co wszystko zrobiłem. Coś przeoczyłęm? Chyba niepotrzebnie generowałem w rejstr PCMSK... Natomiast co do Timera...to przerwania...
A przypadkiem nie włącza go przerwanie Timer-a ? When the SM bit is cleared (zero), the SLEEP instruction forces the MCU into the Idle mode, stopping the CPU but allowing Timer/Counters, Watchdog and the interrupt system to continue operating. This enables the MCU to wake up from external triggered interrupts as well as internal ones like Timer Overflow...
Dziękujemy za udostępnienie. Oto migawka ich SDK: Major enhancements with this release include: • Support BK7235/BK7237/BK7256 development kit • Support Multi-media dirver & demos • Support new software architecture, such as components and middleware etc • Support boot for RISC-V • Support new APIs for driver ADC/GPIO/DMA/UART/SPI/QSPI/Timer/TRNG/Ma...
Przepisałem wedle swej wiedzy. Symulacja w AVR Studio 4 działa poprawnie, ale po zaprogramowaniu LED'y nie migają... Drogi kolego ucy74 , jeśli już coś robisz , to rób to dobrze , albo nie rób wogóle - nie mogłem się powstrzymać ;) Ustawiasz INT0 na wyzwalanie zboczem narastającym ,"usypiasz" proca snem głębokim (Power-down) i dziwisz się , że nie...
Witam, prawdopodobnie błąd jest w inicjalizacji watchdog. Wykorzystujesz do tego dwie funkcje, init_WDT() oraz init_watch_dog(). Pierwsza init_WDT: https://obrazki.elektroda.pl/2044113200_... ale już kolejna linijka [syntax=c]WDTCSR=_BV(WDIE);[/syntax] kolejne nadpisanie rejestru WDTCSR, w tym momencie ponieważ mieścisz się w czterech...
Armino SDK zostało oczywiście wydane jako open-source: https://github.com/bekencorp/armino Funkcje Armino 1.2.0: Główne ulepszenia wprowadzone w tej wersji obejmują: • Obsługa zestawu rozwojowego BK7235/BK7237/BK7256 • Obsługa multimediów i demonstracji • Obsługa nowej architektury oprogramowania, takiej jak komponenty i oprogramowanie pośrednie itp...
[syntax=c]#include <avr/wdt.h> #include <avr/interrupt.h> #include <avr/io.h> #include <avr/sleep.h> register char interrupts_counter asm("r23"); register char saved_mcusr asm("r21"); ISR(WDT_vect)//obsługa przerwania od watchdoga { interrupts_counter++; } int main(void) { saved_mcusr = MCUSR; interrupts_counter = 0; sei();//zezwolenie...
Czyli raczej powinienem używać wielu funkcji zamiast jednej wielkiej? O tym nie myślałem, ale zdecydowałem sie skrócić pętle kolorów do tylko 7 kroków. while(1) { while((green!=0)&& (blue!=0)) { --green; --blue; for(i=100;i!=0;--i) ; } /*--g--b*/ while (green!=0xfa) { ++green;...
W manualu jest napisane: If the watchdog is enabled for interrupt on underflow or invalid feed sequence only then there is no way of clearing the interrupt. The only way you could perform return from interrupt is by disabling the interrupt at the VIC (using VICIntEnClr). Jeśli dobrze to rozumiem jedyne wyście dosłowne i w przenośni z funkcji przerwania...
OK, rozumie Twoje intencje i z chęcią pomogę, bo minimalizowanie poboru energii to mój "bzik" :) Jednakże zacząłbym od tego, że przy takim zasilaniu gdy ustawisz ten mikrokontroler na kwarcu 32kHz , to zużywać będzie zaledwie 20 μA przy 3V i niewiele więcej przy 5V. Czy to nie wystarczy? Większe straty masz na samym zasilaczu. Co do usypiania -...
Czy czas wybudzania procesora nie będzie zbyt długi? W trybie IDLE wstrzymywany jest tylko CPU poprzez odcięcie sygnału zegarowego. Idle Mode When the SM2..0 bits are written to 000, the SLEEP instruction makes the MCU enter Idle mode, stopping the CPU but allowing SPI, USART, Analog Comparator, ADC, Two-wire Serial Interface, Timer/Counters, Watchdog,...
Tablice wektorów mam z przykładów ze strony [url=http://www.freddiechopin.info/]http... Nic w niej nie zmieniałem i wersja 6.1.1 działa dobrze a 7.1.0 wiadomo Tak wygląda tablica wektorów: [syntax=cpp]void (* const vectors[])(void) __attribute__ ((section(".vectors"))) = { (void (*)(void))&__main_stack_end,// Main stack end address...
W dokumentacji pisze: IDLE MODE When the SM2..0 bits are written to 000, the SLEEP instruction makes the MCU enter Idle mode, stopping the CPU but allowing SPI, USART, Analog Comparator, ADC, Two-wire Serial Interface, Timer/Counters, Watchdog, and the interrupt system to continue operating. This sleep mode basically halts clkCPU and clkFLASH, while...
Witam, mam problem ze skonfigurowaniem ADC. Chcę czytać 3 kanały: (ADC1_IN01, ADC1_IN11 i ADC1_IN12) bez każdorazowego wyzwalania (najlepiej, żeby w jakichś rejestrach była zawsze najbardziej aktualna wartość). O ile dobrze rozumiem DS, muszę użyć: trybu injected - dane zapiszą mi się oddzielnie dla każdego kanału, w rejestrach ADC_JDRx. Coś muszę robić...
Hmm, a czemu? WDE = 0 i WDTIE = 1 włącza przecież Interrupt Mode. Podejrzewam, że muszę jeszcze wyzerować/ustawić jakiś bit, o którym nie mam pojęcia? :P Sprawdziłem ten program (dopisałem oczywiście jeszcze sei(); w mainie) i dzieje się jeszcze inaczej, bo dioda mrygnęła dwa razy (main + 1x przerwanie), potem procek zasypia i już się nie budzi (pobór...
Tak jak napisałeś powinno być dobrze. Jeszcze jedna uwaga. Poprzednio miałeś ustawione bity na Interrupt and System Reset Mode. To może obecnie skomplikować ci możliwość przestawienia nastaw WatchDoga.Jeśli po wpisaniu tych wartości do rejestru nadal działanie WatchDoga nie będzie zgodne z oczekiwaniami to dzieje się tak dlatego iż w sterowaniu WatchDogiem...
1. Można użyć watchdog timerów (wdt). Czyli mikrokontroler budzony byłby co jakieś 2 sek. Trzeba by zliczać ilość tych wybudzeń, tak aby uzyskać pożądany okres 1-2 min. Pytanie tylko, czy tak częste wybudzanie przez wdt nie powoduje znaczącego zużycia energii z baterii? To jednak było zbyt pochopne stwierdzenie. W przypadku atmegi8 nie widzę takiej...
W tym mikrokontrolerze (tak jak piszesz) możesz ustawić Watchdog tak, że nie resetuje mikrokontrolera, tylko zgłasza przerwanie, które budzi mikrokontroler. Tak ustawiony mikrokontroler po wykonaniu przerwania Watchdoga wraca do miejsca, w którym został uśpiony i wykonuje dalej program, czyli np. pętlę główną. Aby ponownie wszedł w Power Down musisz...
3. Jak dobrze widzę w dokumentacji to stan rejestrów przy power-down jest zachowany, więc można to zrobić bez użycia eepromu. Owszem, ale... Power-down Mode (...) In this mode, the Oscillator is stopped, while the external interrupts, and the Watchdog continue operating (if enabled). Only an External Reset, a Watchdog Reset, a Brown-out Reset, an external...
Pewnie kolega zakupił LaunchPad'a, też go mam i do tej pory udało mi się "zamigotać" używając identycznych funkcji ze znanych z programowania w C AVR'ów + magiczne konfiguracje samego MSP430. Ale banalny przykład z pierwszego postu świadczy o nieznajomości budowy mikrokontrolera. Sam przed chwilą szukałem w plikach nagłówkowych co oznacza (być może...
Witam ponownie. Mam jeszcze pytanie. Ponieważ chciałem dodać obsługę: ETH_WKUP_IRQHandler i ETH_IRQn. Więc w pliku vaectors.c dodałem takie linijki: [syntax=c] // ETH Ethernet global Interrupt void ETH_IRQHandler(void) __attribute__ ((interrupt, weak, alias("__Default_Handler"))); // ETH_WKUP Ethernet Wakeup through EXTI line Interrupt void ETH_WKUP_IRQHandler(void)...
Witam, mam problem z obsługą przerwań zewnętrznych INT0 oraz INT1 w symulatorze (Simulator). Piszę w AVR Studio 4.19, gdyż Atmel Studio nie ma symulatora dla ATtiny87. Popatrzcie na ten banalny kod (okroiłem pierwotny kod do absolutnego minimum): [syntax=c] #include <avr/interrupt.h> unsigned char i; ISR(INT0_vect) //interrupt at PB6 { i++; }...
Co to za procek ? Power-down dla Atmegi masz Only an External Reset, a Watchdog Reset, a Brown-out Reset, a Two-wire Serial Interface address match interrupt, an External level interrupt on INT0 or INT1, or an External interrupt on INT2 can wake up the MCU
Witam! ADC Noise Reduction Mode When the SM1..0 bits are written to 01, the SLEEP instruction makes the MCU enter ADC Noise Reduction mode, stopping the CPU but allowing the ADC, the external interrupts, and the Watchdog to continue operating (if enabled). This sleep mode halts clkI/O, clkCPU, and clkFLASH, while allowing the other clocks to run. This...
Only an External Reset, a Watchdog Reset, a Brown-out Reset, USI start condition interrupt, an external level interrupt on INT0, or a pin change interrupt can wake up the MCU Według dokumentacji wybudzenie mikrokontrolera z trybu power-down możliwe jest jedynie przez przerwanie od niskiego poziomu na INT0, a na jakiekolwiek przerwanie od INT1 procek...
Poniżej zamieszczam wersje źródłowe plików kontrolera wykonanego według dokumentacji Atmel'a AVR444: Sensorless control of 3-phase brushless DC motors wykonanego na kontrolerze ATMega 48/88/168. Autor bardzo dokładnie udokumentował swoje dzieło. Funkcje static unsigned int CalculateCurrent () Calculates current consumption. static unsigned long CalculateSpeed...
A odblokowałeś globalne przerwania, bo chyba coś takiego funkcjonuje w AVR. dopisane: Znalazłem: SEI Global Interrupt Enable dopisane: Przeoczyłem SEI jest w twoim programie. dopisane: Może masz WatchDoga włączonego i sie procek resetuje.
Witam wszystkich, proszę o pomoc w rozwiązaniu problemu w kodzie w języku C ale ze wstawką asemblerową. Poniżej zamieszczam kod. [syntax=c]/* * main.c * * Created: 2/14/2022 1:11:10 PM * Author: Maciej */ #include <xc.h> #include <avr/wdt.h> #include <avr/interrupt.h> #include <util/delay.h> #define WDT_ENABLE ISR(WDT_vect)//przerwanie...
Witam. Znalazłem w necie. To powinno pomóc rozwiązać twój problem. Gościu tu przedstawia jak uśpić procesor i obudzić go przerwaniem INT0. [syntax=c] #define LED_PIN 4 void setup() { pinMode(LED_PIN, OUTPUT); //Save Power by writing all Digital IO LOW - note that pins just need to be tied one way or another, do not damage devices! for (int i = 0; i...
Skoro tak to pokaż w kodzie gdzie ten WD jest ustawiany i przerwanie od niego, bo ja nie znalazłem. Odnoszę się do kodu ze strony https://github.com/feilipu/Arduino_FreeR... [syntax=c] BaseType_t xPortStartScheduler( void ) { /* Setup the relevant timer hardware to generate the tick. */ prvSetupTimerInterrupt(); /* Restore the context of the...
Chciałem na ww procku zrobić klawiaturkę matrycową zasilaną bateryjnie. W celu oszczędności baterii chciałem skorzystać z trybu Power Down. I tu pojawia się moje pytanie: Czy można procka wybudzić tylko poprzez skorzystanie z INT0 / 1. Bo jeśli tak, wiązałoby się to z konieczniością ustawiania wszystkich wyjść matrycowych w stan 0, podłączenia INT0...
Jest kilka możliwości. Tak samo w Bascomie jak i w każdym innym języku/kompilatorze. Można uruchomić WATCHDOGa i odczekać w pustej pętli aż zresetuje, można połączyć dowolne wyjście mikrokontrolera z wejściem resetu i zresetować, gdy potrzeba. ? Niezupelnie, Watchdog - OK Druga alternatywa - NIE Owszem, RESET jest tez zewn. Interrupt ale nieco inny...
Witam. Kod wkleja się w znacznikach Syntax. Składnia: Kolorowanie składni: In this mode, the external Oscillator is stopped, while the external interrupts, the USI start condition detection, and the Watchdog continue operating (if enabled). Only an External Reset, a Watchdog Reset, a Brown-out Reset, USI start condition interrupt, an external level...
Oczywiscie tak. Dodam ze uzywam programu System Workbench [syntax=c] /** ****************************************... * (at)file startup_stm32.s dedicated to STM32F103C8Tx device * (at)author Ac6 * (at)version V1.0.0 * (at)date 2018-04-06 ****************************************...
W przerwaniu INTx ustawić watchdog w tryb przerwania na czas około 1 sekundy i wrócić do power down. Po przerwaniu od watchdoga sprawdzić stan wejścia i podjąć odpowiednie kroki. PS. W attiny każde wyprowadzenie może wybudzić procesor. Lepiej używac pin change interrupt moim zdaniem.
Nieprawda, nie musi resetować procesor, może wyłącznie wywoływać przerwanie... A co napisałem? Przypomnę Jeśli jednak watchdog ma możliwość generowania przerwania, to problemu nie ma trzeba w przerwaniu od watchdoga zresetować go i program będzie kontynuowany. No właśnie źle napisałeś. WG ma specjalny tryb - interrupt mode, w którym generuje tylko...
Niestety, na tym wsadzie też resetuje się po kilku s. Oto końcówka logu: 17MB65 42914L ORION ORION PIF42-DLED
:arrow: Pijopic Gdybasz, zamiast poczytać dokumentację. Jeżeli chodzi o INT0 wyzwalane stanem niskim i budzenie procesora, to jest to opisane na poczatku rozdziału "External Interrupt". Działa to też synchronicznie, ale w oparciu o oscylator watchdog-a. Stan niski musi się utrzymać przez ok. dwie mikrosekundy. Jeżeli chodzi o Pin Change Interrupt to...
Dodam moj przepis na ładną tablicę wektorów (przykład dotyczy ATtiny2313) : .cseg ;—————R...
Tak oczywiscie reset podciagniety. Okrojony do minimum program: $crystal = 7372800 $regfile = "m168def.dat" Config Aci = Off Config Lcd = 40 * 2 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.0 , Db7 = Portb.1 , E = Portb.4 , Rs = Portb.5 Config Timer1 = Timer , Prescale = 64 On Timer1 Timer1_int Config Pinc.4 = Input '...
Zainstalowałem AVR Studio4 i lecę od początku z google i pdf na temat ASM i AVR Powiedzcie chociaż czy w dobrym kierunku zmierzam? Bo jak w złym to odpuszczam i daje sobie spokój, pobawię się migającymi diodami w Bascomie. Tam gdzie nie ma komentarza to nie wiem co to znaczy i co robi ale było w pdf lub innych opisach, jeżeli ktoś może mi wyjaśnić instrukcje...
Witam, zrealizowałem program do pilota RC_5, który ma posłużyć do sterowania końcówką mocy (5 przycisków, vol+, vol-, wybór potencjometru L/R/oba na raz, ON/OFF i przycisk mute). Programik śmiga aż miło, nie ma w nim błędów, problem leży w poborze mocy. Pobór prądu ~9 mA przy napięciu 3,15 a pin change interrupt can wake up the MCU. Na moje jedyną sensowną...
Witam :) Potrzebuję opis poszczególnych bloków tych dwóch mikrokontrolerów: - AT89S8252 - AT90S2313 Poniżej umieszczam schematy blokowe. W AT89S8252 zależy mi na: RAM ADDR. REGISTER ACCB REGISTER TMP2, TMP1 PSW INSTRUCTION REGISTER TIMING AND CONTROL WATCH DOG INTERRUPT, SERIAL PORT, AND TIMER BLOCKS PROGRAM ADDRESS REGISTER BUFFER PC INCREMENTER PROGRAM...
Oj pomyliłem pana Jimi Hendrix z Tplewa w moim ostatnim poście. Przepraszam. Zakrenciłem się. Dodano po 28 Jak chcesz wykorzystywać procesory DS. to jest taka fajna maszynka jak DS80C390. Tu masz podstawowe parametry: 80C52 compatible - 8051 instruction-set compatible - Four 8-bit I/O ports - Three 16-bit timer/counters - 256 bytes scratchpad RAM -...
Dzięki freedi miałeś racje. Patrzyłem na kolejność przerwań w tabeli f0 ale nie na adresy. Aby zapełnić luki i poprzesuwać adresy dodałem brakujące reserved handler Dodano po 11 Teraz tylko muszę rozwiązać skąd mi przerwań multum nadchodzi i w nierównych odstępach od timera. Bo pwm wyprowadzone jest na jedną diodę a przerwanie zmienia stan innej diody....
Doczytałem w dokumentacji, iż ten układ ma rozbudowany moduł Watchdoga. I jeśli nawet nie jest wykorzystywany, to należy go wyłączyć. Niezależnie od fusbitu WDTON. [syntax=c]cli(); //__disable_interrupt(); wdt_reset(); //__watchdog_reset(); MCUSR &= ~(1<<WDRF); /* Clear WDRF in MCUSR */ WDTCSR |= (1<<WDCE) | (1<<WDE); /* Write...
Funkcja SystemInit jest wywoływana w obu przypadkach na początku main. Podałem ją w kodzie. Może tutaj faktycznie jest problem. Pliki startup.s Keila i Cube się różnią. Zauważyłem, że funkcja SystemInit jest wywołana w pliku dla Cube. Niestety te pliki to dla mnie czarna magia. Czytałem o nim artykuł waszego kolegi z elektrody. https://www.elektroda.pl/rtvforum/topic3...
Witam, W dokumentacji dowolnego mikrokontrolera ATmega z łatwością można odnaleźć tablicę z wektorami przerwań, np. taką: 1 $0000 RESET 2 $0002 INT0 External Interrupt Request 0 3 $0004 INT1 External Interrupt Request 1 4 $0006 INT2 External Interrupt Request 2 5 $0008 INT3 External Interrupt Request 3 6 $000A INT4 External Interrupt Request 4 7 $000C...
Podejrzewam ze problem moze byc wynikiem uzycia zlego pliku startowego Sprobuj tego, tylko pamietaj ze przerwanie w C musi byc z __attribute__((interrupt)) PS. Ten startup ma domyslnie wylaczone przerwania w rejestrze CPSR, musisz je dodatkowo wlaczyc (czyszczac bit I w CPSR), mozesz to zmienic w startupie.
A od kiedy to AT90S2313 posiada w zestawie instrukcję MOVW ? Może warto zainteresować się listą rozkazów i czytać nawet to co napisano drobnym drukiem. This instruction is not available in all devices. Refer to the device specific instruction set summary. Drugie zadanie to lektura noty katalogowej: Table 2. Reset and Interrupt Vectors 1 $000 RESET Hardware...
GPIOA->BSRR |= GPIO_BSRR_BS5; To nie źródło problemu ale tak się tego rejestru nie używa. To jest write only rejestr czyli tylko samo przypisanie Zgadza się, dzięki :) Co do głównego problemu, punkt 1. Użyj debugera okazał się bardzo pomocny :) Założyłem, że skopałem coś w Makefile (np. brakuje jakiejś flagi) i podczas debugowania nic ciekawego...
Przeczytaj dokładnie sobie rozdział "Watchdog System Reset" z PDF'a np od ATmega88/168/328 No tak, ja to czytałem. The Watchdog always on (WDTON) fuse, if programmed, will force the Watchdog Timer to System Reset mode. With the fuse programmed the System Reset mode bit (WDE) and Interrupt mode bit (WDIE) are locked to 1 and 0 respectively. To further...
Witam Features • Compatible with MCS-51™ Products • 32K Bytes of Reprogrammable Flash Memory • Endurance: 1000 Write/Erase Cycles • 4V to 5.5V Operating Range • Fully Static Operation: 0 Hz to 33 MHz • Three-level Program Memory Lock • 512 x 8-bit Internal RAM • 32 Programmable I/O Lines •...
1 strona: Peripheral Features – Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode – Real Time Counter with Separate Oscillator – Six PWM Channels – 8-channel, 10-bit ADC Differential mode with selectable gain at 1×, 10×...
Problem z resetowaniem rozwiązany. Obecnie nie mogę poradzić sobie ze zwiększaniem czas_c w ISR(WDT_vect). Jeśli używam czas_c ++ wszystko działa, gdy próbuję użyć if (stan==1 czas++) już nie zlicza [syntax] // Libraries #include <avr/io.h> // for GPIO #include <avr/sleep.h> // for sleep mode #include <avr/interrupt.h> // for interrupts...
Witam, chcąc zaimplementować oszczędzanie energii w moim Arduino zdecydowałem się na użycie watchdoga. Jak wiadomo odmierza on do 8 sekund, więc chcąc "spać" przez 60 byłem zmuszony zaimplementować go kilka razy pod rząd. Przy wybudzeniu celem mojego programu jest zczytanie wartości czujników oraz RTC a następnie wyświetlenie tego na ekranie LCD. 1....
Różnice w tych procesorach w skrócie: • Changes to Bit and Register Names • Changes to Interrupt Vector • Oscillators and Selecting Start-up Delays • Improvements to Timer/Counters and Prescalers • Improvements to the U(S)ART • Enhanced Watchdog Timer • Changes to EEPROM Writing • Programming Interface...
data uchar Watch; //flagi kontrolne void procedura_1 (void) { Watch=Watch || 1; // ustawiasz flage nr1 .... .... .... } void procedura_2 (void) { Watch=Watch || 2; // ustawiasz flage nr2 .... .... .... } void procedura_3 (void) { Watch=Watch || 4; // ustawiasz flage nr3 .... .... .... } //itd... void procedura_obsuluga_Watchdoga (void) interrupt x {...
(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne itd. W sumie chciałem, żeby w poradniku było trochę więcej nawiązań do...
Witam! Polecam ATmega8: Features: • High-performance, Low-power AVR® 8-bit Microcontroller • Advanced RISC Architecture – 130 Powerful Instructions – Most Single-clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 16 MIPS Throughput at 16 MHz – On-chip...
Witam, Bazuje na projekcie ze strony Freddie Chopin dla stma F4 z dodanymi bibliotekami STM32F4xx_StdPeriph_Driver. Zdefiniowałem sobie konfigurację timer'a w następujący sposób: [syntax=c]void Timers_Config(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TI... ENABLE); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM1_CC_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptio...
Teraz chyba wreszcie zrozumiałem te timery, wreszcie zaczęło to mieć sens i działa tak jak ja chcę. Myślałem że użycie prescalera automatycznie powinno wystartować timer a włączenie globalnych przerwań załatwi sprawę, nie wiedziałem że trzeba jeszcze osobno włączyć timer. Dobrze myślałeś!... Ustawienie prescalera na każdą wartośc różną od zera startuje...
witamnapisalem program do zliczania impulsów i wyświetlania ilości na wyświetlaczu tid(opel) .program działa prawidłowo ale po jakimś czasie sie zawiesza.Poczytałem troche na forum i doszedłem do wniosku iż brakuje watchdog-a. Na podstawie innego programu dodałem jego obsługe i program przestał działać. Nie wiem co jest tego przyczyną, w jaki sposób...
Co robie źle? Przykład na diodzie migającej podłączonej do PB3 ;DEVICE ATtiny12 (at) Internal 1.2MHz RC oscillator ;FUSES: (Internal RC oscillator) ;BODLEVEL0 (set) ;BODEN 0 ;SPIEN 0 ;RSTDISBL1 (clear) ;CKSEL3 0 ;CKSEL2 0 ;CKSEL1 1 ;CKSEL0 1 .Nolist .Include "tn12def.inc" .List .equCLK= 1200000 ; 1,2MHz clock .defzero_reg...
Witam Mam problem z uruchomieniem watchdog'a w atmedze324. Procesor nie uruchamia resetu. Ten program powinien wypisywać cyfry przez około 2 sekundy potem powinien się zresetować. Proszę o pomoc. [syntax=jezyk_programowania] #include <mega324.h> #include <stdio.h> #include <delay.h> #include <stdlib.h> #include <string.h>...
Witam, mam sobie meżkę z bootloaderem void reset() { cli();wdt_enable(WDTO_15MS... } Słyszałem, że watchdog działa tak, jak fizyczne zwarcie linii RESET do masy. Jednak po wywołaniu reset() program wraca do swojego początku, zamiast w pełni resetować urządzenie. Co innego, jeśli zewrę reset – wtedy...
Ok sprawa się nieco wyjaśniła. Mikroklocek nie idzie spać po użyciu WFE ale za to robi to po wywołaniu WFI. Ostatecznie mój kod, który wprowadza rdzeń w uśpienie wygląda tak jak poniżej i w tej formie to działa [syntax=c] /** * Entering STOP2 power save mode. In this mode all clocks except LSI and LSE are disabled. StaticRAM content * is preserved,...
Witam !!! Uruchamiam projekt https://hackaday.io/project/158256-hover... https://github.com/isabellesimova/Hoverb... Projekt jest napisany na STM 32 W swojej desce mam GD32. Po uruchomieniu błąd systemu zgłasza watchdog /* IWDG init function */ static void MX_IWDG_Init(void) { __HAL_RCC_WWDG_CLK_ENABLE(); hiwdg.Instance = IWDG; hiwdg.Init.Prescaler...
Podłącze się pod temat: Postanowiłem pobawić się trochę dalmierzem opartym na SRF05 i korzystając z innego rozwiązania przekodowałem (ze zrozumieniem) program, który ma za zadanie pokazywać odległość od przedmiotu. Istotą mojego problemu jest to, że atmega32 idzie w maliny i nie bardzo wiem dlaczego... pomiary wykonują się, ale czasami procek wiesza...
A czy to też nie działa : Config Watchdog = 16 Start Watchdog Disable Interrupts być może Bascom odblokowuje przerwania w starcie watchdoga?
zastąp signal i stary vektor INTERRUPT0 SIGNAL (SIG_INTERRUPT0) { x++; } na nowsze ISR i INT0_vect ISR (INT0_vect) { x++; } tu masz wszystkie przerwania http://www.nongnu.org/avr-libc/user-manu... a co do watchdoga hmm... żeby użyć #include <util/delay.h> musisz dać wcześciej #define...
Ok dzieki Piotrek. Przypomniales mi o parzystosci juz wszystko gra. male przeoczenie.. Ja stosuje metode uzupelnienia "white char" czyli spacja:P =>> Dar.El to jest moj poczatek :) (az taki laik nie jestem :P) .nolist .include "m8def.inc" .list ;***************************************... ;* DEFINICJE ZWIAZANE Z REJESTRAMI * ;***************************************...
Witam wszystkich. Uzywam Eclipse + OpenOCD (0.9.0) + GCC. Do tej pory używałem STM32F103 (Cortex-M3), a teraz przesiadłem się na STM32F373 (Cortex-M4). Wziąłem ze starego programu skrypt linkera, startup, vectors.c i posklejałem do kupy odpowiednio je modyfikując. Program generalnie odpala się, mogę sterować GPIO. Następnie spróbowałem uruchomić SysTicka....
Skąd pomysł do użycia rekurencji? Wydawało mi się to naturalnym rozwiązaniem i działało przez kilka lat, przy czym nie było wtedy obliczeń, tylko sprawdzenie pinu i ponowne wywołanie albo reset. Przecie da się to napisac if'em i/czy pętlą Rzeczywiście. Jakoś tak bylem zafiksowany na tej rekurencji, że to oczywiste rozwiązanie mi umknęło. Mam naturalną...
http://obrazki.elektroda.pl/3207877000_1... http://obrazki.elektroda.pl/9634776400_1... http://obrazki.elektroda.pl/8673988800_1... http://obrazki.elektroda.pl/3005768300_1... Termometr z funkcją pamiętania maksimum i minimum (zapisane w rejestrach, tracone przy braku zasilania). Program...
Witam ponownie! Standardowo dziękuję za podpowiedzi. Oczywiście przydały się bardzo ;) Pojawiły się niestety też inne pytania, z którymi walcze od rana. 1. Z jakiegoś powodu wczytując dane ze sterownika ( zmieniając je) i zapisując ponownie nie są one zapisywane na sterowniku. Mam tutaj na myśli np zboacze przerwania. Domyślnie ustawione jest na narastające,...
/***************************************... /* */ /* startup_SAM7S.S: Startup file for Atmel AT91SAM7S device series */ /* */ /***************************************... /* ported to arm-elf-gcc / WinARM by Martin Thomas, KL, .de */ /* <eversmith(at)heizung-thomas.de> */ /* modifications...
[syntax=c]Czy ktoś może podesłać informację jak skasować watchdoga w ATXmega128A4? Kod wygenerowany w CodevisionAVR do inicjalizacji: // Watchdog Timer initialization void watchdog_init(void) { unsigned char s,n; // Optimize for speed #pragma optsize- // Save interrupts enabled/disabled state s=SREG; // Disable interrupts #asm("cli") // Watchdog Timer:...
Zastosowałem Twoje wskazówki ale jest jedno ALE. Oto poprawiony kod: [syntax=c] /* * Watchdog_C.c * * Created: 2018-03-04 08:07:00 * Author : Jakub */ #include <avr/io.h> #include <avr/wdt.h> #include <avr/interrupt.h> #include <stdlib.h> #include <stdio.h> #include "hd44780.h" __attribute__((naked)) __attribute__((section(".init3")))...
Witaj. A co byś chciał w min zaprogramować, bo w/g katalogu to nie ma co. Poniżej charakterystyka tej rodziny: SAB 80515 Microcontroller with factory mask-programmable ROM SAB 80535 Microcontroller for external ROM ● 8 K × 8 ROM (SAB 80C515 only) ● 256 × 8 RAM ● Six 8-bit I/O ports, one 8-bit input port for analog signals ● Three...
george2002: Nie, urządzenie niestety nie jest zgodne z DS2490. Wykorzystałem tam tylko kilka komend oraz spopsób przesyłania informacji (za pomocą interrupt transfers zamiast bulk), Linux bez łatania jądra nie pozwala na bulk transfers przy urządzeniach low-speed. Dodatkowo układ DS2490, podobno jest przeterminowany i nie powinien być używany w nowych...
Mam taki plik nagłówkowy [syntax=c]/*============================... * Project: Board Support Package (BSP) * Developed using: * Function: Standard definitions for PHILIPS ARM7TDMI-S controller LPC213x * * Copyright HighTec EDV-Systeme GmbH 1982-2007 *=======================================...
Jeśli chodzi o sprzętowego PWMa to chyba pokuszę się o AVR136, tylko zamiast atmegi wykorzystam attiny2313. Zasymulowałem sobie to na razie tylko w proteusie i całkiem ładnie to śmiga :) ________________________________________... Ok. Potrzebuje Waszej pomocy. PWMy ładnie działąją (12 kanałów), ale nie wiem jak zwiększyć częstotliwość tego PWMa....
Cześć! Odświeżam trochę temat, procesor AtMega328. Poniżej zamieszczam fragment służący do usypiania procesora. Problem polega na tym, że program działa w sposób losowy. Pobór prądu czasami wynosi 60 uA, czasami 130 uA a czasami 230 uA. Pierwsza wartość jest dla mnie akceptowalna, pobór wynika z poboru prądu innych elementów niż mikrokontroler. Martwi...
na wyświetlacz timera nie potrzeba, jeśli to zwyklły 16x2 to on nie wymaga zbyt wiele. Timery wtedy możesz na inne rzeczy wykorzystać. Jak odczytujesz temperaturę? Wykorzystujesz watchdoga, resetujesz go właściwie? Pytasz o watchdoga - nie konfigurowałem go, czy on jest z automatu włączony? sensors.requestTemperatures(); temperatura = sensors.getTempCByIndex(0);...
Witam. Zmontowałem przed chwilą i sprawdzone. Zostaje tylko pozbycie się drgań styków klawisza. [syntax=c]#define F_CPU 16000000UL // Atmega644 #include <avr/io.h> /*biblioteka avr*/ #include <string.h> /*biblioteka napisy*/ #include <stdio.h> /*biblioteka podstawowa C*/ #include <stdlib.h> /*biblioteka C*/ #include <stdbool.h>...
Proponuję zainteresować się procesorkiem ADuC812 firmy analog devices. FEATURES Analog I/O 8-Channel, High Accuracy 12-Bit ADC On-Chip, 100 ppm/"C Voltage Reference High-Speed 200 kSPS DMA Controller for High-Speed ADC-to-RAM Capture :D Two 12-Bit Voltage Output DACs On-Chip Temperature Sensor Function Memory 8K Bytes On-Chip Flash/EE Program Memory...
Dziękuję za szybką odpowiedź :). Czyli Freddie Chopin napisał że się mylę a to dokładnie tyle samo znaczą te linie w przypadku dokładnie tego procka na który ja piszę. Przez to że nie dałem mu do tego powodu rozumiem, że nie powinien zgłaszać przerwania ponieważ zmieżone wartości napięć nigdy nie przekroczyły ustawionych wartości progowych na 5 V i...
Plik main: #include "DSP281x_Device.h" #include "spi_sd.h" #include "SD_SPI.h" #include "ff.h" #include "diskio.h" void Gpio_select(void); void InitSystem(void); void SPI_Init(void); interrupt void cpu_timer0_isr(void); // Prototype for Timer 0 Interrupt Service Routine...
Kody błędów tunera 6010 001-050 Watchdog errors 001 memory error e.g memory initialisation error, insufficient memory,... 002 Stack overflow error software processing becomes corrupted 003 Stall watchdog error software hang-up 004 Slave stall error indicates that the communication with the front panel is no longer possible 051-100 ISR errors 051 Non...
ze strony Winro** Tabela błędów dla tunerów DSX 6010 oraz DSB 3010 001-050 Watchdog errors 001 memory error e.g memory initialisation error, insufficient memory,... 002 Stack overflow error software processing becomes corrupted 003 Stall watchdog error software hang-up 004 Slave stall error indicates that the communication with the front panel is no...
Witam. Tutaj masz rozpiskę wszystkich błędów ale twojego nie widzę: :?: 001-050 Watchdog errors 001 memory error e.g memory initialisation error, insufficient memory,... 002 Stack overflow error software processing becomes corrupted 003 Stall watchdog error software hang-up 004 Slave stall error indicates that the communication with the front panel...
Postarałem się, coś jeszcze zrobić, ale niestety nadal zielona dioda nie "tętni" ( ma stopniowo świecić coraz mocniej do maksymalnej wartości i potem świecić coraz lżej aż prawie zgaśnie i tak w kółko). Uporządkowałem kod żeby był bardziej przejrzysty: #include <msp430g2231.h> #include <msp430g2553.h> int jasnosc=1; int a=1; int b=100; int...
Witam Napisałem kawałek kodu do obsługi przerwań IRQ Zasada miała być taka po wywołaniu przerwania (zwarcie PIO_PA2 do masy) miał zmienić się stan diody na PIO_PA27. Niestety program nie działa poprawnie (przerwanie nie jest wykonywane). Tytułem wstępu to tyle. Poniżej kod, który powinien realizować przerwania. main.c http://obrazki.elektroda.pl/7449929900_1...
Koleżance od jakiegoś czasu pojawia się blue screen niewiadomego pochodzenia, ten program to zwisów wygenerował coś takiego, teraz powiedzcie mi co jest przyczyną tych blue screenów ****************************************... * * * Bugcheck Analysis * * * ****************************************...
bascom watchdog interrupt freertos interrupt interrupt event
odblokować start pulpicie silnik pralki hoover satel czujka pożarowa
pralka electrolux mikrokomputer cobra1
Satel Micra, Perfecta – alarm sabotażowy często się uruchamia, fałszywe wyzwalanie tampera Volkswagen Polo - Zimna rura między termostatem a chłodnicą