atom1477 pisze: ↑02 cze 2025, 13:15
Bo jesteś tępy.
drzasiek90 pisze: ↑02 cze 2025, 13:09
Ale wolisz rżnąć głupa dalej.
Obaj jesteście debilami...
Ponieważ gdzieś w necie wyczytałem, że przyczyną może być konflikt z obsługą USB, więc ją wyłączyłem.
Arduinowy Serial uparł się działac na pinach PA9 (TX) i PA10 (RX), co się kłoci z TIM1, więc musiałem jego kod zakomentować i testy robić na TIM3, co ma taką zaletę, że TIM3 ma tylko jeden wektor przerwania TIM3_IRQHandler.
W kodzie są dwie interesujące nas linie:
Kod: Zaznacz cały
TIM3->DIER|=TIM_DIER_UIE; // Włącza przerwanie
NVIC_EnableIRQ(TIM3_IRQn); // Ustawia przerwanie
I nie pieprzcie, że NVIC_EnableIRQ ustawia DIER, bo gówno prawda.
Jeżeli zakomentuję
jedną,dowolną, linię z tych dwóch (albo obie), to licznik liczy w kółko, a Serial.println(TIM3->CNT); wyświetla zliczone impulsy.
Jeśli obie linie są odkomentowane, to konwerter serial<>USB jest martwy i niczego więcej sprawdzić się nie da.
(Poprzednio (TIM1 i USB) procek się wieszał dopiero przy przerwaniu, tutaj układ się w ogóle nie daje uruchomić.)
Czyli :
//TIM3->DIER|=TIM_DIER_UIE;
NVIC_EnableIRQ(TIM3_IRQn);
DZIAŁA
Lub
TIM3->DIER|=TIM_DIER_UIE;
//NVIC_EnableIRQ(TIM3_IRQn);
DZIAŁA
Lub
//TIM3->DIER|=TIM_DIER_UIE;
//NVIC_EnableIRQ(TIM3_IRQn);
DZIAŁA
Ale
TIM3->DIER|=TIM_DIER_UIE;
NVIC_EnableIRQ(TIM3_IRQn);
Robi z procka cegłę...
Czy coś dotarło do pustych łbów ???