Dokąd zmierza świat?
-
- Lider FORUM (min. 2000)
- Posty w temacie: 16
- Posty: 3843
- Rejestracja: 21 kwie 2011, 10:58
- Lokalizacja: ::
Re: Dokąd zmierza świat?
Tak. Że autor wątku który twierdzi że HAL jest dla debili a porządni programiści robią na rejestrach, uruchomił program na HALu ale nie potrafi tego zrobić na rejestrach.
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 15
- Posty: 9449
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Re: Dokąd zmierza świat?
A to jakiś wstyd nie umieć czegoś, co nigdy wcześniej nie było potrzebne?
Wiem, że są sposoby żeby podłożyć funkcji adres w pamięci od którego ma się uruchomić, ale teraz nie chodzi mi o to żeby zaczęło działać, tylko żeby się dowiedzieć dlaczego nie działa, bo to bardzo cenna wiedza.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 16
- Posty: 3843
- Rejestracja: 21 kwie 2011, 10:58
- Lokalizacja: ::
Re: Dokąd zmierza świat?
Ok, pomyliłem się.
Zezwala na obsługę w rejestrze NVIC->ISER a nie DIER.
Nie mniej jednak nie jest to konfigurowanie przerwania, tylko zezwalanie na jego obsługę.
W szczególności, ta funkcja nie przypisuje adresu funkcji przerwania (a zdaje się że myślisz że to robi).
Fakt, w Arduino mogli coś popierniczyć, ale nazwa się nie zgadza z nazwą funkcji przerwania, więc sądzę że jest tak jak było w normalnym programowaniu STMa.
Uparcie nie chcesz się tego dowiedzieć. Dałbyś w przerwaniu zapalanie LEDa, i już byś wiedział o wiele więcej.
Nie zapala się: procek chodzi w inną funkcję przerwania. A tam zastaje na przykład while(1).
Zapala się: procek wchodzi do Twojej funkcji, ale np. nie kasuje bitu przerwania (przez co wchodzi w to przerwanie w kółko).
LED to skrót myślowy. Nie misi tam być fizycznego LEDa, tylko wystarczy multimetrem czy oscyloskopem sprawdzić napięcie na pinie.
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 15
- Posty: 9449
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Re: Dokąd zmierza świat?
Ale Ty dalej nie czytasz tego co piszę, tylko dyskutujesz z tym, co sam wymyśliłeś...atom1477 pisze: ↑02 cze 2025, 14:40Uparcie nie chcesz się tego dowiedzieć. Dałbyś w przerwaniu zapalanie LEDa, i już byś wiedział o wiele więcej.
Nie zapala się: procek chodzi w inną funkcję przerwania. A tam zastaje na przykład while(1).
Zapala się: procek wchodzi do Twojej funkcji, ale np. nie kasuje bitu przerwania (przez co wchodzi w to przerwanie w kółko).
LED to skrót myślowy. Nie misi tam być fizycznego LEDa, tylko wystarczy multimetrem czy oscyloskopem sprawdzić napięcie na pinie.
Jak mam zapalić LED-a, kiedy procesor jest martwy a program w ogóle się nie uruchamia?
Zresztą to nie o to chodzi.
Kiedy włączysz przerwania bitem DIER, to procek działa. Zapewne (bo tak powinno być) tablica przerwań jest zapisana rozkazami powrotu z przerwania. Dzięki temu można wywołać przerwanie, które nie ma napisanej obsługi i po prostu dzieje się nic.
Użycie NVIC_EnableIRQ zapewne robi taki burdel w systemie, że dzieją się cuda...
Coś znalazłem https://www.stm32duino.com/viewtopic.php?t=1923
To trochę nie na temat, ale w okolicy.
Wynika z tego, że HAL tak się rozpanoszył, że uniemożliwia korzystanie z funkcji, które były wcześniej dostępne.
W skrócie, jak się chce korzystać ze starego kodu, to trzeba HAL wyłączyć.
Na razie nic mi się nie udało z tym zrobić, ale brzmi to rozsądnie i pasuje do problemu.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 16
- Posty: 3843
- Rejestracja: 21 kwie 2011, 10:58
- Lokalizacja: ::
Re: Dokąd zmierza świat?
A gdzie ja napisałem że masz zapalić LEDa?
Napisałem żebyś dodał kod zapalający LEDa! A czy procek łaskawie tego LEDa zapali czy nie, to już on zdecyduje. I na podstawie tego co zrobi, będziesz mógł dojść do odpowiednich wniosków. Tak trudno to zrozumieć?
Poza tym nigdzie nie pisałeś że procek jest martwy. Napisałeś:
Więc naprawdę zaczynam myśleć żeś tępy...
No tosz właśnie LEDem byś to sprawdził...
-
- Lider FORUM (min. 2000)
- Posty w temacie: 14
- Posty: 2381
- Rejestracja: 25 kwie 2016, 11:58
- Lokalizacja: Jodlowa
- Kontakt:
Re: Dokąd zmierza świat?
Przecież dostałeś taka odpowiedź na samym początku, o tu:
Oraz tu:
Ale byłeś tak zajęty wyzywaniem nas od debili że zignorowałes wszystkie odpowiedzi.drzasiek90 pisze: ↑01 cze 2025, 22:41To znaczy, że HardwareTimer (z biblioteki STM32Duino) już ma własną wersję obsługi tego przerwania, i Twój kod ją duplikuje.
Jesteś kretyn do potęgi i tyle.
Nie dość, że nie za bardzo wiesz co robisz to jeszcze nie słuchasz podpowiedzi.
Tyle w temacie.
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 15
- Posty: 9449
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Re: Dokąd zmierza świat?
Uparcie odpowiadasz na posty, których nie czytałeś.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 16
- Posty: 3843
- Rejestracja: 21 kwie 2011, 10:58
- Lokalizacja: ::
Re: Dokąd zmierza świat?
A może on wchodzi do przerwania tuż po starcie? Czyli nie jest "martwy" od samego początku, tylko od wejścia do przerwania?
Poza tym masz ST-Linka. To nie możesz zatrzymać rdzenia i zobaczyć adresu w rejestrze PC?
Poza tym masz ST-Linka. To nie możesz zatrzymać rdzenia i zobaczyć adresu w rejestrze PC?
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 15
- Posty: 9449
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Re: Dokąd zmierza świat?
Ale co mi to da?
Ja szukam kodu który robi problem, a Ty mi każesz dłubać w procesorze...
Jeśli Arduino na STM32 nie da się używać bez HAL, no to się nie da i nie ma sensu tego robić, bo za co się nie zabierzesz, to będzie droga przez mękę...