Ale tylko mało zapobiegliwy nie przewiduje błędu wykonywania programu i na początku programu nie ustawia używanych rejestrów w wymagane stany. Żartujesz...Inity pisze się zakładając znany i zawsze ten sam stan defaultowy SFRów. Rdzeń nie wylosuje sobie skoku pod reset vector, a nic gorszego niz skok do przerwań typu fault lub NMI lub właśnie RESET(+skok...
Witam, Przerabiam książkę STM32 Aplikacje i ćwiczenia w języku C Pana Marka Galewskiego. Dotarłem do ćwiczenia 12c, w którym do sterowania diodami mają być użyte TIM1 oraz TIM2. TIM1 może generować przerwanie ogólne oraz przerwanie z kanału Compare. Dzięki temu łatwo możemy sterować dwoma diodami. Natomiast TIM2 może generować tylko przerwanie ogólne...
Cześć, mam napisać "prosty" program dla ATmegi2560. Po wciśnięciu przycisku na porcie A, ma on zapalić odpowiadającą mu diodę na porcie B. Dioda ma się świecić 1 sekundę a potem ma zgasnąć. Za podtrzymanie świecenia mają odpowiadać przerwania timera1, a program ma się zaczynać od ustawienia flagi przerwania int0. Int0 działa, po wciśnięciu przycisku...
Najlepiej to napisać sobie w bascomie ale z użyciem sprzętu - czyli przerwania tu gdzie się tylko da. Rozumiem że masz tylko odbierać dane po rs z ustalona prędkością i jakoś je zapisywać. Fajnie było by gdyby te dane były jednobajtowe - szybciej się wtedy reaguje i są pojedyncze, szybkie warunki. Kwarc daj max jaki wyjdzie z wyliczeń (najchętniej bardzo...
Dokladnie, musisz ustawic stos. U mnie struktura wygladala tak .include "m8def.inc" .org 0x00 rjmp reset RESET: ldi R16,low(RAMEND) out SPL,R16 ldi R16,high(RAMEND) out SPH, R16 main: rjmp main
Witam! Napotkałem problem przy obsłudze przerwań zewnętrznych (jestem początkujący). Oto mój programik: volatile int przerwanie=0; ISR(INT1_vect) { przerwanie=1; } int main() { LCD_Initalize(); LCD_WriteText("START")... _delay_ms(1500); DDRD &= ~(1<<DDD3); //pin PD3 jako...
Mam uszkodzona pralkę Beko problem polega na tym ze pralka zawieszała się wcześniej na programach nie kończyła do końca programu, wcisnąłem reset 5sekund przerwało program ale cały czas pracuje pompa spustowa nie kończy resetu, pokazuje czas np 2 godziny tak jak zaczyna program, nie ma jak wcześniej minute działała pompa i koniec resetu moglem przełączyć...
tylko co z tego wynika ?? jeszcze male pytanko odnosnie AVR czy rejestry robocze maja jakas poczatkowa wartosc po resecie ??
dobrze, a nie lepiej w przerwaniu napisać warunek, że jeśli zmienna bitowa równa się jeden to robi to a jeśli nie to tamto końćząc podprogram1 zrobisz SET tej zmiennej a kończąc podprogram2 RESET :D
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 Proszę o wszelkie podpowiedzi,...
Witam, Mam problem z przerwaniem. Chcę zrobić coś takiego, że po naciśnięciu przycisku zeruje się odliczanie. On Int0 Przerwanie Enable Int0 Config Int0 = Falling Enable Interrupts Dim I As Integer I = 0 Do Cls Lcd I Waitms 500 Incr I Loop Przerwanie: I = 0 Return W tym momencie działa to tak. Int0 (z procka) podpinam do GND . Gdy przerwę obwód...
Dobra nie będą Cię więcej męczył tylko powiem. To nie będzie reset. Podczas sprzętowego resetu są asynchronicznie resetowanie wszystkie rejestry specjalne. Czyli piny są ustawiane jako Hi-Z, Timery są zatrzymywane, ADC/I2C/SPI/UART zatrzymywane, przerwania wyłączane itd. itp. Skok pod adres 0 nie zrobi tego. K***a. Nic nie zrobi. Żeby to zrobić trzeba...
Witam. Mam podłączony moduł BlueTooth HC-05 do ATmega328, używam go do programowania oraz do standardowej komunikacji. Programowanie jest możliwe dzięki wyprowadzeniu STATE w HC-05. Pin ten skonfigurowałem tak, aby podczas normalnej pracy był na nim stan HIGH (3.3V bo taka jest logika HC-05) a podczas połączenia np z telefonem, stan zmienił się na LOW....
Mam ja mosci Panowie taki problem, nad ktorym od dwoch dni siedze po nocach i zaczynam sie poddawac. Mam plytke testowa wg tego schematu: Kwarc 4Mhz, kondensatory 22p. I teraz najwazniejsze... Fusebity mam normalnie ustawione tak: Wszystko mi dziala, smiga pieknie, onewire, przerwania, programowanie POnyprogiem. Po prostu miod malinka. Wkladam w podstawke...
To jest startup: .section .vectors, "ax" .code 32 .align 0 .global _vectors .global reset_handler /***************************************... Exception Vectors ****************************************... _vectors: #ifdef STARTUP_FROM_RESET ldr pc, [pc, #reset_handler_address...
Wywala sie przy wyjsciu z przerwania 0x000013ac <ADC_IRQHandler+92>: pop {r4, r5, r6, pc} BUG: couldn't calculate PC of next instruction, current opcode was 0x5c002000 should never reach this point Dorzuce jeszcze moj plik startup: /* Startup code for STR91x ARM-based microcontrollers based on STR912 startup source and some examples from www.stm.com...
Witam, mam problem z wywołaniem funkcji w przerwaniu. Na chwilę obecną debugowanie odpada, gdyż mam mały problem z odpaleniem debugowania. Po wywołaniu przez procesor przerwania, albo się on wiesza albo niepoprawnie działa funkcja. To samo dzieje się gdy wkleję do przerwania zawartość funkcji. Podczas kompilacji nie sypią się żadne warningi dotyczące...
/* * Some defines for the program status registers */ ARM_MODE_USER = 0x10 /* Normal User Mode */ ARM_MODE_FIQ = 0x11 /* FIQ Fast Interrupts Mode */ ARM_MODE_IRQ = 0x12 /* IRQ Standard Interrupts Mode */ ARM_MODE_SVC = 0x13 /* Supervisor Interrupts Mode */ ARM_MODE_ABORT = 0x17 /* Abort Processing memory Faults Mode */ ARM_MODE_UNDEF = 0x1B /* Undefined...
Witam! Zaczynam przygodę z stm32. Mam płytkę stm32discovery, którą programuje w środowisku IAR. Napisałem programik, który komunikuje się po uarcie z kompem. Program działa- wysyłam rozkaz z terminala na, który mikrokontroler odpowiada (wykorzystuje przerwania). Problem zaczyna się gdy resetuje układ. Kroki postępowania: 1. Kompiluje program o IARze...
Cześć, Projekt zaraz będę konfigurował od początku. Fakt, podałem za mało danych, wybaczcie, skrajna nerwica mnie na to wzięła. Od początku: Używam SW4STM32, ale chciałbym od tego odejść mocno, bo za dużo automatów i za mało szczegółów, może dlatego, że nie potrafię tego wszystkiego ogarnąć. Kompilatora używałem poprzez naciśnięcie "build". W ustawieniach...
Witam, testuje układ, który umożliwia ustawianie zaworu kulowego poprzez silnik krokowy i natknąłem się na coś dość nietypowego. Ustawianie zaworu odbywa się poprzez potencjometr podłączony do portu A, pin 0, przy czym pot podłączony jest dość standardowo, dwa skrajne piny do 5V/GND, środkowy pin do portu PICa. Układ umożliwia tryb, w którym odbywa...
pliki vectors.s i startup.s mam od Ciebie /***************************************... * author: Freddie Chopin, http://www.freddiechopin.info/ * file: vectors.S * last change: 2010-04-08 * * chip: LPC2103 * compiler: arm-none-eabi-gcc (Sourcery G++ Lite 2009q3-68) 4.4.1 * * description:...
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...
TMS'y są piekielnie szybkie, i czasami piekielnie uparte w konfiguracji. Szybkie może i są, jednak CC Studio raczej nie pozwala na wykorzystanie możliwości C67XX. Dosyć spory kod tworzy ten kompilator. Co do konfiguracji, to jakoś to zrobiłem. Rozgryzłem wiele problemów na podstawie dokumentacji TI, ale teraz już kończą mi się pomysły. Jak ustawiłeś...
Dioda nie może być migająca jeśli ma to działać na 230VAC. Po naciśnięciu przycisku dzwonka zasilony przekaźnik zwiera swoje styki powodując podtrzymanie zasilania dla siebie do momentu przerwania obwodu przez przycisk reset. Jedyna wada gdy do cewki przekaźnika podepniemy też dzwonek to będzie on dzwonił aż do resetu. Można to wyeliminować dokładając...
Witam, w poniższym programie występują niepożądane resety, sprawdzałem już wartość rejestru MCUCSR i tuż po resecie ma wartość 0 czyli jest to reset programowy. zorientowałem się, że źródłem jest wywołanie instrukcji odpowiadającej za przerwanie komparatora analogowego (w oknie disassembly adres 0x00000020), które jest wyłączone... nie wiem co powoduje...
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 ****************************************...
Czesc! Mam do was pytanie jak przerobic ten program tak aby jednym przyciskiem np na p1.1 wchodzic do programu ktory bedzie wykonywal zliczanie impulsow jednokrotne a drugim zeby ta liczbe zapamietac i wrocic do glownego programu oczywiscie ta liczbe chcialbym gdzies zapamietac zeby moc z niej korzystac w glownym programie bo ja probuje i mi to nie...
Warunki przemysłowe stanowią nie lada wyzwanie dla projektantów. Wszelkiego rodzaju zakłócenia przenoszone po zasilaniu, pojemnościami, indykcyjnościami itd. Rada. Ekranowanie, odsprzęganie. Zamiast linii sygnałowych o dużych długościach należy zastosować np. transoptory. Wskazane ekranowanie kwarcu (ostrożne i szybkie przylutowanie jego obudowy do...
No więc tak. Po przerobieniu sieci elektrycznej(gniazdka) byłem pewien, że po problemie ale jednak nie... Komputer nadal się resetuje. Zauważyłem jednak, że tuż przed restem kompa, coś w nim piszczy. Pierw zapiszczy tak raz, a potem dwa razy taki dłuższe i reset i piszczenie przerwane. Na początku myślałem że to wentylatorki, ale sprawdzałem nie mają...
W końcu sukces. Dzięki koledze Mirekk36 procek generuje piękną nośną na portb.3. Wielkie dzięki. A tak na marginesie to sposób kolegi Atom1477 nie chce się kompilować, wyskakuje błąd w tym miejscu: ICR1 = 222 OCR1A = 22 '0...222 . Dodano po 3 Nie długo trwała moja radość że wszystko działa. Mam dwie diody IR na które podaję przebieg 36kHz a z drugiej...
Średnio chce mi się analizować ten kod, ale jeśli załączasz przerwania w przerwaniu od INT1 po wcześniejszym wyłączeniu przerwania od INT1 - jest poprawnym rozwiązaniem, gdyż nie ma możliwości wejścia do funkcji przerwania od INT1 podczas jej wykonywania niezależnie od okoliczności; tak ponowne zezwolenie na przerwanie od INT1 bez wcześniejszego zablokowania...
Witam. Walczę właśnie z programem do PWM opisywanym parę postów niżej. Postanowiłem jednak założyć nowy temat bo komuś może się przydać do innych projektów. Mianowicie problem jest z przerwaniem od uarta w M169 wydaje mi się że wszystko ustawiłem poprawnie jednak wymuszenie przerwania w symulacji nie powoduje skoku do wektora. .include "m169def.inc"...
Witam, Jestem początkującym w temacie, napisałem sobie sterowanie 8 serwami, ale chciałbym to robić bardziej dokładnie przy użyciu trybu CTC timera1 i sprzętowego rejestru przesuwającego. W następujący sposób go inicjalizuje // na początek włączamy tryb czasomierza i ustawiamy wyjscie na 0 w trybie normalnym TCCR1A = 0x00; // tryb czasomierza TIFR &=...
Tego jeszcze nie grali ;) Wstawiłem tą funkcję do przerwania od Timera TIM3_IRQHandler i procek stawał. Potem wstawiłem tą funkcję do funkcji main i było OK. Wstawiłem tą funkcję z powrotem do przerwania i odpiąłem JTAGa i cyka. Hmm ciekawe. Więc w sumie procek się resetuje ale jest to rozwiązanie trochę pośrednie do tego, które chciałem wykorzystać....
Coś nie bardzo wychodzi mi wywołanie przerwania INT0 po przepełnieniu Timera0. Poniżej kod (usunąłem zbędną funkcję wyświetlającą, która działa poprawnie). Program powinien: - po restarcie wyświetlić korpkę (robi to poprawnie) - po każdym przerwaniu wyświetlać kursor (i to nie działa bo nie ma przerwania). Nie istotne jest że każde przerwanie ponownie...
Witam. Zbudowałem urządzenie z wykorzystaniem atmega32 jest w nim ok 2kb kodu napisanego w bascom. Urządzenie wykonuje cykl pracy bazując na kilku zmiennych odczytanych z eeprom wewnętrznego. Maszyna posiada licznik cykli i za każdym razem przy 17 cyklu wyskakują na wyświetlaczu krzaki a po następnym atmega sie resetuje. Wykluczam tu zakłócenia - układ...
Hej, Piszę, ponieważ mam problem z jednoczesną obsługą Timera, UART'a i ADC w lpc1769 (CodeSourcery, a moduł z Propoxa). Moduł przerwań Timera działa bez zarzutu, dla przykładu migam sobie diodką, kod inicjujący poniżej: [syntax=cpp] LPC_SC->PCONP |= (1 << 1); //Power up Timer 0 LPC_SC->PCLKSEL0 |= (1 << 3); // Clock for timer = CCLK...
Cześć. Proszę Was pomóżcie bo coś mieszam sobie i nie wiem co jest grane. Bawię się przerwaniami EXTI w uC STM32. W założeniu zbocze opadające na liniach PC0, PC1, PC2 i PC3 oraz PB5 ma wywołać przerwanie i PC0 i PC1 gasi/zapala LED1 podłączoną do PB1 natomiast PC2 i PC3 gasi zapala LED2 podłączoną do PB2. Przerwanie na PB5 ma zapalić obie diody na...
Witaj, ja to zrobiłem tak: 1. Uruchomiłem timer z przerwaniem co 10ms 2. Zrobiłem funkcję timeout_100ms() z globalną zmienną timeout_100ms. 3. Zrobiłem funkcję zwracającą stan_zmiennej_timeout_100ms. Jeśli osiąganięto 10 wywołań to ustawiam 1 logiczą w innym przpadku 0. 4. Wykonałem również funckję clear_timeout_100ms() 5. Wykonałem funkcję start_timeout_100ms()...
Witam! Nie mogę dojść do tego co się dzieje. W zamierzeniu program powinien czekać na ustalone znaki z USARTa i odpowiedzieć kilkunastoma znakami tekstu. Objaw jest taki, że po otrzymaniu 1 znaku odpowiada trzema prawidłowymi znakami a potem siedzi w przerwaniu z którego nie może się wykaraskać (tzn. nie robi nic innego). Zdarzyło mi się też zaliczyć...
AVR nie traci zawartości pamięci przy resecie. Więc jeżeli program nie będzie jej zerował, rozwiązanie jest pewne. Inna sprawa, że w tym wypadku sugerowałbym, by watchdog nie robił resetu, tylko wywoływał przerwanie. Co to będzie za układ?
Witam serdecznie, Jestem w trakcie tworzenia menu na wyświetlaczu alfanumerycznym działającym na bibliotece HD44780. Menu opiera się na przerwaniach EXTI, które generuję za pomocą joysticka 5 położeniowego. Przerwania konfiguruję w ten sposób: switch . W przypadku gdy przycisk zostaje zwolniony (dowolne wychylenie) zawsze wchodzi do warunku else i zeruje...
Coś się w tym algorytmie nie trzyma kupy. Wciśnięcie przycisku zajmuje człowiekowi czas rzędu 1-10 sekundy (ok, przy trzymaniu palca na guziku daje się zejść do 1/40). Przez 1/40 sekundy przy 8 MHz próbkowaniu można zarejestrować 200 tysięcy próbek, a bufor mamy na kilka tysięcy. No to co my tu udajemy? Jakie użyteczne dane można złapać w parę kB pamięci...
Cześć Poszperałem trochę i o ile znajduję podobne tematy, żaden nie wygląda dokładnie tak jak u mnie i nie znalazłem tam pomocy. Konkretnie - jestem od niedawna szczęśliwym posiadaczem Citroen C8 z 2006 roku, z radiem RT3 z nawigacją i kolorowym ekranem. W radio wgrałem najnowszy soft 6.63 b890 (bez spolszczenia) ze strony Szymaniuka. Zrobiłem to aby...
chyba wszyscy wiedza ze mad to cpu, ale widzisz z tym odlutowaniem (niełaczeniem ) to nie zawsze tak jest ze fon jest dead. zobacz tylko sterowanie ładowaniem, z chapsa VLIM na cpu. A takich pierdół jest duzo, a mad sie bootnie nawet jak tamte przerwania sa fake.
Mam kłopot z obsługą przerwania INT0 w ATmega32. Chciałem, żeby były generowane zboczem opadającym. Na nogę ITN0 wchodzi sygnał prostokątny 1Hz z wypełnieniem 50%. Jest rezystor podciągający do +5V. Kod jak niżej. Powinno generować sygnały na beeperzerz podłaczonym do portu D ale nic się nie dzieje. Bascom odmawia skompilowania linijki zawierającej...
Masz na myśli taką linijkę na początku main()? cbi(DDRD,PD3); Nie pomaga. Acha dotknięcie pina tylko bez podłączenia na 5V resetuje.
Witam, Próbuję uruchomić przerwanie timera 0 w ATMega8583 i jakoś nie mogę. W założeniu ma być to tryb pracy normalnej - licznik krąży i jak się przepełni to następuje przerwanie. Pewnie robię coś nie tak, tylko nie wiem co. Próbuję tak (to tylko fragmenty kodu dotyczące przerwania): .CSEG .ORG 0x0000 rjmp reset .ORG OVF0addr rjmp timer_0 reset:...
Na przykładzie timera0 ;wektory przerwań .org 0x00 rjmp reset .org 0x09 rjmp przerwanie_timer0 reset: .def acc = r16 .def maska = r17 ;### START TIMER0 in acc, TCCR0 ldi maska, 0b00000111 ; 3 ostatnie bity to ustawienie preskalera or acc, maska out TCCR0, acc in acc, TIMSK ldi maska, 0b01000001 or acc, maska out TIMSK, acc ; odblokowanie przerwania...
No nie to żebym od razu się domagał:) po prostu myślałem, że się ktoś zainteresuje i jak nie będzie widział tutaj potrzebnych informacji to powie mi jakich (a nie od razu zmiesza z błotem:) bo ja nie wiem co jest potrzebne żeby zdiagnozować ten błąd. Po kolei. Do tego nie robisz wcięć, przez co program jest nieczytelny. Szukałem jak wygląda na tym forum...
cześć chłopcy i dziewczęta :) Od jakowegoś czasu próbuje rozgryźć przerwania w procku ADUc7026 korzystając z IAR System , Wigglera i H-Jtaga. Wszystko skonfigurowane wg opisu na stronie: (EN).pdf W związku, ze korzystam z ARMa z firmy Analog Device nie mam możliwości flashowania pamięci wiec ożywając plik startowy dostępny z examplow IARa programuje...
bo ktos ma taka potrzebe i juz - latwo sobie wyobrazic przerwanie zewnetrzne, ktore ma 'resetowac' wykonanie programu, ale bez resetowania procesora... pewnie ze mozna to zrobic inaczej... ale tutaj mozna to zrobic 1 instrukcja, a inaczej potrzebne byloby conajmniej kilka(-nascie). mozna zrobic wiele dziwnych rzeczy, ale akurat ta uwazam za calkiem...
olo_3 -> to jest cały kod? ten który tu pokazałeś????? po pierwsze - gdzie masz pętlę główną po części inicjalizacyjnej programu ??? DO ... LOOP - chyba że ślepy jestem czy jak? (jeśli rzeczywiście jej nie masz to nie dziw się, że twój program wariuje bo po z tego co widać po inicjalizacji odrazu program leci do obsługi przrwania i się zapętla na śmierć)...
Dzięki za podpowiedzi. Nigdy nie dołączałem modułów w assemblerze do moich projekcików i nie wiem czy dobrze zrobiłem. Nie mam w tej chwili platformy sprzętowej ale sprawdzałem zaproponowane rozwiązanie w symulatorze AVRStudio. Dodany plik przerwania.s: #include <avr/io.h> .section .text .global TIMER0_OVF_vect .global TIMER0_COMPA_vect ;kod TIMER0_OVF_vect:...
Głowica jest drożna, nanosiła tusz bez problemu jeszcze przed resetem. Usterka wystąpiła w momencie wydruku... najpierw proces wydruku uległ zdecydowanemu spowolnieniu, a potem po prostu został przerwany i pojawiła się sygnalizacja o przepełnieniu Waste Ink. Nie posiadam innej głowicy, producent już też ich nie produkuje. Moduł odsysania działa.
Witam Kombinowałem już rożnie i nie wiem co źle napisałem że nie działa poprawnie. Powinno działać na stan niski, a w rzeczywistości działa non stop - niezależnie czy jest stan niski czy wysoki. [syntax=asm] .include "tn2313def.inc" .equ wejscia = portd .equ in_wejscia = ddrd .equ dane = portb .equ in_dane = ddrb .equ baud=9600 .equ freq = 12000000...
Witam, napisałem obsługę zewnętrznego przerwania, które się wykonuje bezproblemowo, jednak po obsłużeniu przerwania program nie wraca od razu w miejsce z którego przerwanie zostało wywołane. Oto kod: [syntax=asm].INCLUDE "m16def.inc" .DEF acc = r16 // akumulator .EQU SYS_FREQ = 1 .CSEG .MACRO delay1sek // delay 1 sekunda na 1MHz ldi r17, 0x09 9 delay3:ldi...
Witam Dosięgła mnie ta przyjemność (albo i nie) przesiadki na pice (pic24j256GB110) + MPLAB. Otóż próbuje uruchomić na board test podstawowe funkcje przerwania timery uart etc. i natknąłem sie na podstawowe przeszkody: 1. funkcje przerwań: (z jakiegoś tutoriala) [b]void __attribute__((__interrupt__,no_... _T1Interrupt(...
Witam szanownych użytkowników, Programuję mikrokontroler ATmega32, mam problem z przerwaniem INT2, które po starcie urządzenia się odpala mimo, że nie puszczam sygnału wyzwalającego przerwanie. Ponieważ projekt jest za duży, żeby zamieścić go w całości zamieszczam tylko najważniejsze fragmenty, a dodatkowo dodam plik .ZIP ze spakowanym projektem, który...
Hej, korzystam z evala stm32f4. Do odczytywania wejscia na jednym z pinow chcialbym wykorzystac przerwanie. W teorii jest dobrze, przerwanie generuje sie, jednak odczytywane wartosci z pinu sa zle. Ustawilem, by przerwanie bylo generowane na zbocze rosnace, jednak z pinu odczytuje wartosci 0 jak i 1. Dodam, ze dodatkowo korzystam z Free RTOS, ktory...
Dzień dobry. Mam problem z transmisją SPI w mikrokontrolerze ATMEGA16 w trybie SLAVE. A mianowicie po wysłaniu do mikrokontrolera bajtu danych nie jest generowane przerwanie. W tym samym mikrokontrolerze sprawdzałem działanie SPI na ustawienie flagi SPIF w rejestrze SPSR i było wszystko OK. Czyli transmisja jest OK. Jeśli ktoś mi morze pomóc i wyjaśnić...
Program zachowuje się gdyby chciał a nie mógł skorzystać z SysTick_Handler. Najpierw kod: Przy zmniejszeniu ilości taktów na przerwanie w systicku i debugowaniu po kroku przerwanie w ogóle nie występuje. A gdy przy w/w kodzie ma być wywołane przerwane (via step to line) program wiesza się w miejscu: Wg datasheeta przerwanie to powinno mieć adres 0x0000003C....
Witam, Jak w temacie, podczas debugowania przez SWD nie działają przerwania. Wersja Openocd 0.9.0 z obsługą SWD od Freddiego. Po sprzętowym resecie bez debugowania przerwania działają. Przez JTAG debugowanie z przerwaniami działa. Skrypt konfiguracyjny Openocd dla SWD: source [find target/swj-dp.tcl] adapter_khz 500 if { [info exists...
Z tego co widzę, inżynierowe Samsunga pracują nad tym, niestety z doświadczenia elektronika wynika, że wgranie niewłaściwego firmware lub przerwanie wgrywanie firmware kończy się tym, że urządzenie nie jest w stanie pobrać nowej - poprawnej wersji ani wrócić do ustawień fabrycznych i trzeba pamięć programować przez specjalne programatory w serwisie....
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...
Trzeba tak samo, jak w procesorze, włączyć je i skonfigurować w procedurze inicjalizacji/resetu. Pauzujesz symulację i przełączasz się na pracę krokową i udajesz kwarc... ;) Np. po odpowiedniej ilości cykli zegara pojawi się przerwanie od timera/licznika, jeżeli wcześniej je włączysz w TIMSK i ustawisz preskaler w TCCR0 dla Timer0. Zmieniasz wartość...
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...
A przetwornicę nie mógłbyś obciążyć rezystorem, który szybciej rozładuje te pojemności? Pomysł elektryka z komparatorem jest bardzo dobry. Sugerowałbym jednak sterować końcówkę RESET. Można także skorzystać z gotowych układów scalonego resetu z funkcją BOD.
Witam...Używam pamięci programu do przechowywania stałych (łańcuchy tekstowe), przerwanie od odbioru łączem szeregowym do obsługi interfejsu MODBUS.ATmega128 obsługuje wyświetlacz graficzny. Chciałem dodać w menu wybór języka Polski/Angielski. Obsługa tekstów wygląda następująco : //######################################... void putcharxy(unsigned...
Prawdopodobnie mostek H powoduje zwarcie napięcia zasilającego i wszystko się resetuje. Nie pomyliłeś się w połączeniach? Osobiście R5 wrzuciłbym pomiędzy Vcc a kolektor, natomiast wejście INT0 podpiąłbym na kolektor. Emiter do masy. To taki standartowy sposób podłączania z pullupem.
Układ po podłączeniu baterii pracuje przez chwilę poprawnie a następnie wygląda jakby się resetował Czy w identycznych warunkach (sterowanie silnikiem) zawsze czas do resetu jest identyczny (lub pdobny). i na wszystkich portach pojawiają się "1". Zazwyczaj w uC po Resecie wszystkie porty są w stanie wysokiej impedancji, czyli są przełączone na wejścia....
Już działa:) Jeżeli chodzi o same ustawienia i inicjalizację Timera0 oraz przerwań to okazało się tak jak mi się wydawało że wszystko miałem dobrze. Jak zwykle w takich przypadkach błąd okazał się błahy i leżał w zupełnie innym miejscu. Otóż przy definiowaniu wektorów przerwań nie używałem definiowania ".org". Początek mojego programu wyglądał tak:...
Witam . Kiedyś pisałem w asemblerze obsługę DS 1990 i była ona rozwiązana z uwzględnieniem przerwania od timera. Działało to w następujący sposób. Jest sobie rejestr statusu DS-a każdy bit sygnalizuje inny stan w trakcie odczytu.Na przykład ustawiony bit 0 oznacza reset_on. bit 1 reset_off i tak po kolei.W przerwaniu jest podprogram który sprawdza rejestr...
Mam problem z napisaniem programu rozpoznającego stany w sieci. Na wejście INT0 procesora podpiąłem sygnał z sieci 1Wire. Chciałbym rozpoznać trzy stany w sieci: - reset (czyli ściągnięcie linii danych do 0 na 480us) - nadanie 0 - (czyli 10us stan niski, 80us stan wysoki) - nadanie 1 - (czyli 80us stan niski, 10us stan wysoki) 0 i 1 następują po sobie,...
Czyli nadal jest za malo cykli zegarowych pomiedzy przerwaniami? Moge zmienic czas pomiedzy przerwaniami na 20 ms, myslisz ze to cos da? Pozdrawiam
Używam zegara PCF8583, działa mi jego obsługa itp, natomiast mam problem z jego przerwaniami. Układ jest skonfigurowany by generować przerwanie co 1s, po którym procesor ponownie ustawia odpowiednie flagi w zegarze, bowiem samo przerwanie jest jednokrotne. W celu inicjalizacji przerwań od zegara używam procedury: Sub Init_alarm I2cstart 'generate start...
moim zdaniem, to może nawet i się wywołuje to przerwanie, tylko że nie ma czasu się dokończyć. Nie powinno się raczej wywoływać procedur, a zwłaszcza kobylastych z procedur obsługi przerwań, tym bardziej, że to jakiś szybki baudrate (UBRRL==10) a printf nie wiadomo ile się wykonuje. Może masz taką sytuację, że zanim procesor skończy obsługe przerwania...
Oczywiście. Zarówno puszczałem kod swobodnie i czekałem na breakpoint'a jak i działałem StepOver i czekałem na zmianę w AIC_IPR(po zmianie powinno się wywołać przerwanie, zmiana następowała, a przerwanie nie). //Edit: Zauważyłem, że Linker wykorzystuje pliki *.icf do pozyskania danych o pamięciach oraz wielkościach stosów. Niby w pliku znajdują się...
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...
A może przyczyną jest nie wyzerowany licznik preskalera (strona 75): Bit 0 PSR10: Prescaler Reset Timer/Counter1 and Timer/Counter0 When this bit is written to one, the Timer/Counter1 and Timer/Counter0 prescaler will be reset. The bit will be cleared by hardware after the operation is performed. Writing a zero to this bit will have no effect. Note...
Witam Wątpie, że mi ktoś pomoże ale cóż zależy spróbować. Nie mogę włączyć obslugi przerwań w moim procesorze. wiem że kod jest napisany prawidłowo gdyż testowalem na innym kompilatorze. Chodzi o plik startup, którego w sumie nie rozumiem. A może ktoś zna jakieś źródła wyjaśniające jak pisać takie pliki? Ucze się z książką "Mikrokontrolery at91sam7"...
Witam ,napisałem program który ma odmierzyć czas lotu helikoptera (do wyczerpania bateryjki) ,niestety po 2 tygodniach utknąłem na czymś takim: $regfile = "attiny2313.dat" 'wybór procesora attiny2313 $crystal = 8000000 Config Pinb.0 = Output 'dioda sygnalizująca odmierzenie czasu Config Pinb.1 = Output 'buzzer mający piknąć 3 razy po odmierzeniu...
Witam, od kilku dni męczy mnie uciążliwy problem, nie wiem skąd się bierze przepełnienie stosu, skoro wg mnie program powinien działać poprawnie. Kto wie, co może być tego przyczyną? Dziekuje za jakiekolwiek wskazówki Programator - J-LINK SEGGER Środowisko - IAR Procedura obsługi przerwania: __irq void Przerwanie(){ unsigned int dummy;...
Sprawdzilem wszystkie pliki i w zadnym niema wykozystanej zmiennej sstatus, zmiienialem jej nazwe aby czegos nieprzeoczyc niestety bez powodzenia. Podaje caly plik main .[syntax=cpp] *---------------------------------------... #include "AT91SAM7X256.h" #include "AT91SAM7X-EK.h" #include "lib_AT91SAM7X256.h"...
Witam mam problem z piecykiem wyświetla się błąd (świeci ciągłym światłem) brak takiego błędu w instrukcji, kocioł nie reaguje nawet na reset Dodano po 2 Prawdopodobnie rozwiązałem problem przewód od elektrody jonizacyjnej był przerwany zalutowałem go ale widzę że nie na długo wytrzyma w oryginale był zgrzany i będę musiał zmajstrować takową zgrzewarkę.
Marka zasilacza: IBOX Model: EN60950 MOC: 350W Test z programu OCCT: Ustawiłem test na 10 min lecz po 17 sekundach został przerwany. SS z wynikiem testu ponizej.
Witam! Kolega poprosił mnie o zrobienie mini-komputerka do Opla Corsy, mającego wyświetlać dane na wyświetlaczu radia. Problem pojawił się, kiedy zechciałem wyświetlać na bieżąco prędkość - program zgłupiał (choć, raz na kilka odświeżeń wyświetlacza pojawiła się poprawna prędkość) a przy większych prędkościach Atmega ulegała resetom lub się zawiesza....
Zamiast przerwania od Timera0 odmierzaj czas Timerem1.
Witam. Wprawdzie zapoznałem się z wymogami pisania postów, ale jako newbie z góry przepraszam za wszelkie błędy w moim pierwszym poście. Problem dotyczy dysku SAMSUNG HD 160JJ. Przyznam szczerze, że za defragmentację go wziąłem się bardzo późno względem zakupu, bo po prawie 6 latach, więc defragmentator (Defraggler) miał dużo pracy. Na dysku mam dwie...
Witam Proszę o pomoc w zindentyfikowaniu problemu. Otóż jestem w trakcie nauki programowania uC AVR i chciałbym w swoim programie umieścić programowy reset za pomocą watchdog'a. Zależy mi na kompletnym resecie żeby program "na świeżo" wystartował. Po zasięgnięciu do noty katalogowej uC znalazłem opis jak to działa i jak to zdefiniować. Ponieważ korzystam...
Witam, Postanowiłem wykonać urządzenie nalewające (grawitacyjnie, z wykorzystaniem pewnego prawa fizyki) wodę ze zbiornika w żądanych ilościach. Do postu załączam schemat tego co napsociłem (wszystko jest złożone na płytce stykowej). Urządzenie po wykryciu przez czujnik odległości jakiegoś obiektu ma otworzyć elektrozawór na zaprogramowany wcześniej...
Witam, chciałbym mieć przerwanie zewnętrzne na PE0 a cały czas cokolwike bym nie zrobił, przełączył, zmienił itd jest na PA0, moglby ktos rzucic okiem na kod i powiedziec co jest zle... wydaje mi sie ze w tym syscfg jest cos zrabane, albo nie chce sie ustawic etc... swoje wnioski opieram na tym ze PA0..2 normalnie smiga tylko nie mogeprzejsc jakby na...
Jak bym chciał żeby mi ktoś pomógł to włożyłbym minimum wysiłku by przygotować kod na który można spojrzeć bądź skompilować. Nie musi być cały, ale taki który daje możliwość powtórzenia występującego problemu. Chcesz odbierać dane z UART a masz w pętli Waitms. Myślisz że te dane na Ciebie poczekają? Przy tak znikomej ilości informacji jakie zapodałeś...
Witam Zastanawiam się czy konieczne jest resetowanie prescalera timera gdy wykorzystujemy go w roli opóźnień. Na początku uruchamiam zezwolenie na przerwania timera w trybie ctc aby licznik zaczął pracować. Gdy licznik wykona swoją robote i odmierzy odcinek czasu, pętla blokująca zostaje wyłączona i wyłączam zezwolenie na przerwania bo są mi one już...
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++; }...
Jakieś małe opóźnienie i kolejny raz sprawdzenie stanu No przecież po to Ustawilem przerwanie co 30ms. To jest właśnie opóźnienie, którego potrzebujesz :) W kolejnych wywołaniach tego przerwania sprawdzasz sobie stan poprzedni i porównujesz z bieżącym. Jeśli są takie same, to uwzględniasz zmianę. Dodano po 8 Ewentualnie spróbuj podejścia z filtrami...
W pracy mam jakiegoś AVR64 lub AVR128 , już nie pamiętam co kupiłem. Ale będę miał dostęp dopiero pod koniec tygodnia. Teraz możemy zrobić mały eksperyment i sprawdzić jaki jest rzeczywisty rozmiar wektora przerwań. W załączeniu projekt w ASM który powoduje wywołanie przerwania NMI czyli następny wektor po RESET. Przy czym dzięki temu że mamy projekt...
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,...
Jacu$ a gdzie inicjacja stosu, inicjacja przerwania ? Pomijając, że nie zawsze taki sposób programowania jest do przyjęcia, np procesor obsługuje kilka elementów na raz i właśnie jest coś włączone, to jeżeli stos jest inicjowany po resecie, to można sobie te "pop smietnik" darować, jeśli i tak skaczemy do procedury resetu. W poście wyżej jest topic,...