-
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).