-
1. Data: 2022-04-26 00:35:12
Temat: MCU - przerwania
Od: Stachu Chebel <s...@g...com>
Zakupiłem borda FRDM-KL46Z i powoli oswajam się ze środowiskiem
projektowym Kinetis Design Studio. Na początek mruganie LED'em w
w przerwaniu i już problemy. Krok po kroku:
1) Tworzę nowy projekt "Processor Expert", wybieram MCU i takie tam..
2) Z biblioteki komponentów wybieram TimerInt i BitIO.
3) Dla komponentu BitIO ustawiam właściwość "output" i przypisuję
odpowiedni pin.
4) Dla komponentu TimerInt ustawiam we właściwościach:
- Periodic interrupt source : PIT_LDVAL0
- Counter : PIT_CVAL0
- Interrupt period : 10Hz (Możliwe 0.0048Hz .. 20.971MHz)
5) Program obsługi przerwania wygląda tak:
void TI1_OnInterrupt(void)
{
/* Write your code here ... */
Bit1_NegVal();
}
Kompiluję, programuję flash'a, wszystko jest OK. Mruga!! Teraz ustawiam
Interrupt period na 100kHz, na oscyloskopie jest zgodnie z przewidywaniami
50kHz. Super!! Teraz ustawiam na 150kHz i cisza.. Maksymalnie mogę dać
140kHz. Co do Pani Nędzy robię źle?
-
2. Data: 2022-04-26 14:03:32
Temat: Re: MCU - przerwania
Od: Adam Górski <gorskiamalpawpkropkapl@xx>
W dniu 26.04.2022 o 00:35, Stachu Chebel pisze:
> Zakupiłem borda FRDM-KL46Z i powoli oswajam się ze środowiskiem
> projektowym Kinetis Design Studio. Na początek mruganie LED'em w
> w przerwaniu i już problemy. Krok po kroku:
> 1) Tworzę nowy projekt "Processor Expert", wybieram MCU i takie tam..
> 2) Z biblioteki komponentów wybieram TimerInt i BitIO.
> 3) Dla komponentu BitIO ustawiam właściwość "output" i przypisuję
> odpowiedni pin.
> 4) Dla komponentu TimerInt ustawiam we właściwościach:
> - Periodic interrupt source : PIT_LDVAL0
> - Counter : PIT_CVAL0
> - Interrupt period : 10Hz (Możliwe 0.0048Hz .. 20.971MHz)
> 5) Program obsługi przerwania wygląda tak:
> void TI1_OnInterrupt(void)
> {
> /* Write your code here ... */
> Bit1_NegVal();
> }
> Kompiluję, programuję flash'a, wszystko jest OK. Mruga!! Teraz ustawiam
> Interrupt period na 100kHz, na oscyloskopie jest zgodnie z przewidywaniami
> 50kHz. Super!! Teraz ustawiam na 150kHz i cisza.. Maksymalnie mogę dać
> 140kHz. Co do Pani Nędzy robię źle?
A z jakim zegarem kod się wykonuje ?
Pozdrawiam
Adam Górski
-
3. Data: 2022-04-26 18:48:54
Temat: Re: MCU - przerwania
Od: Stachu Chebel <s...@g...com>
wtorek, 26 kwietnia 2022 o 14:03:35 UTC+2 Adam Górski napisał(a):
> W dniu 26.04.2022 o 00:35, Stachu Chebel pisze:
> > Zakupiłem borda FRDM-KL46Z i powoli oswajam się ze środowiskiem
> > projektowym Kinetis Design Studio. Na początek mruganie LED'em w
> > w przerwaniu i już problemy. Krok po kroku:
> > 1) Tworzę nowy projekt "Processor Expert", wybieram MCU i takie tam..
> > 2) Z biblioteki komponentów wybieram TimerInt i BitIO.
> > 3) Dla komponentu BitIO ustawiam właściwość "output" i przypisuję
> > odpowiedni pin.
> > 4) Dla komponentu TimerInt ustawiam we właściwościach:
> > - Periodic interrupt source : PIT_LDVAL0
> > - Counter : PIT_CVAL0
> > - Interrupt period : 10Hz (Możliwe 0.0048Hz .. 20.971MHz)
> > 5) Program obsługi przerwania wygląda tak:
> > void TI1_OnInterrupt(void)
> > {
> > /* Write your code here ... */
> > Bit1_NegVal();
> > }
> > Kompiluję, programuję flash'a, wszystko jest OK. Mruga!! Teraz ustawiam
> > Interrupt period na 100kHz, na oscyloskopie jest zgodnie z przewidywaniami
> > 50kHz. Super!! Teraz ustawiam na 150kHz i cisza.. Maksymalnie mogę dać
> > 140kHz. Co do Pani Nędzy robię źle?
> A z jakim zegarem kod się wykonuje ?
>
> Pozdrawiam
>
> Adam Górski
A żebym ja to wiedział.. Na schemacie jest oscylator 8MHz. Jak natomiast ustawić
częstotliwość taktowania
CPU tego też nie wiem. W którym miejscu KDS można to ustawić lub odczytać aktualną
częstotliwość?
-
4. Data: 2022-04-26 19:01:00
Temat: Re: MCU - przerwania
Od: "Grzegorz Niemirowski" <g...@g...net>
Stachu Chebel <s...@g...com> napisał(a):
> A żebym ja to wiedział.. Na schemacie jest oscylator 8MHz. Jak natomiast
> ustawić częstotliwość taktowania CPU tego też nie wiem. W którym miejscu
> KDS można to ustawić lub odczytać aktualną częstotliwość?
Skoro nie wiesz, to pewnie nie ma mnożnika i jest te 8 MHz. Funkcja
Bit1_NegVal() jest dosyć powolna, zjada jakieś 55 cykli procesora. Wychodzi
160 kHz jako maksymalna częstotliwość migania. A jeszcze narzut samego
przerwania i mamy okolice Twoich 140 kHz. Co robisz źle? Wybrałeś sobie
powolną funkcję do obsługi pinu, jednocześnie nie ustawiając wyższego
taktowania.
Do poczytania
https://mcuoneclipse.com/2014/06/14/frdm-k64f-atmaxi
mum-speed-of-120-mhz/
--
Grzegorz Niemirowski
https://www.grzegorz.net/
-
5. Data: 2022-04-27 02:34:21
Temat: Re: MCU - przerwania
Od: Stachu Chebel <s...@g...com>
wtorek, 26 kwietnia 2022 o 19:01:01 UTC+2 Grzegorz Niemirowski napisał(a):
> Stachu Chebel <s...@g...com> napisał(a):
> > A żebym ja to wiedział.. Na schemacie jest oscylator 8MHz. Jak natomiast
> > ustawić częstotliwość taktowania CPU tego też nie wiem. W którym miejscu
> > KDS można to ustawić lub odczytać aktualną częstotliwość?
> Skoro nie wiesz, to pewnie nie ma mnożnika i jest te 8 MHz. Funkcja
> Bit1_NegVal() jest dosyć powolna, zjada jakieś 55 cykli procesora. Wychodzi
> 160 kHz jako maksymalna częstotliwość migania. A jeszcze narzut samego
> przerwania i mamy okolice Twoich 140 kHz. Co robisz źle? Wybrałeś sobie
> powolną funkcję do obsługi pinu, jednocześnie nie ustawiając wyższego
> taktowania.
> Do poczytania
> https://mcuoneclipse.com/2014/06/14/frdm-k64f-atmaxi
mum-speed-of-120-mhz/
>
> --
> Grzegorz Niemirowski
> https://www.grzegorz.net/
Dzięki serdeczne za link. Dużo wyjaśnia choć nie dokładnie ten MCU. Pod mojego borda
znalazłem to:
https://community.element14.com/products/devtools/ki
netiskl2freedomboard/w/documents/16986/frdm-kl46z---
pe---cw-tutorial-make-it-blink-in-just-5min
Co prawda inne środowisko projektowe (CodeWarrior), ale też mam. Im starsza wersja,
tym lepsza. Szkoda, że też pod
Eclipse (nazwa adekwatna do produktu).


do góry
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei