Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 24 wrz 2025, o 05:11


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 28 sty 2016, o 18:17 
Offline
Nowy

Dołączył(a): 15 lis 2014
Posty: 13
Pomógł: 0

Witam, mam pytanie odnośnie kompilacji i wgrywania tego samego kodu w dwóch różnych środowiskach mianowicie CooCox i OpenStm32. Chodzio o to, że ten sam kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


w CoocCox sprawia, że dioda mruga raz na sekundę a w OpenStm32 mniej więcej cztery razy na sekundę. Dodam, że funkcję SetSysClock mam identycznie skonfigurowaną w obu przypadkach.
Wie ktoś może dlaczego tak się dzieje?

Prosze poprawnie wklejać kody na forum...
SunRiver



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sty 2016, o 20:55 
Offline
Użytkownik

Dołączył(a): 20 lip 2015
Posty: 83
Pomógł: 6

nie wkleiłeś nigdzie funkcji w której inicjalizujesz RCC, więc domniemywam, że oba środowiska w jakiś sposób Ci je konfigurują same, co daje oddmienne wyniki :)


Abstrahując trochę od tematu:
co do konfiguracji i działania na stmach, sciagnij i zainstaluj program CubeMX od ST - pozwoli ci przy pomocy GUI konfigurować podstawowe sprawy które potrzebujesz i generować kod.

Co prawda używają warstwy HAL zamiast SPL, ale wydaje mi się, że HAL to przyszłość bo jest w chwili obecnej rozwijany na bieżąco i daje elegancką możliwość przenoszenia się między prockami bez większych nakładów pracy :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sty 2016, o 21:39 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

Poszukaj w SPL-u ( w obu środowiskach) jak jest zdefiniowane:
#define HSE_VALUE
i ew. ustaw wartość ze swojej płytki ( oczywiście jeżeli Używasz zewnętrznego kwarcu).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sty 2016, o 00:16 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Tak apropo to do konfiguracji zegarów, jeżeli już nie chce nam się czytać manuala polecam http://www.st.com/web/catalog/tools/FM1 ... 3/PF257927

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sty 2016, o 12:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Wywołaj jeszcze funkcję przed funkcją konfigurującą SysTick:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A ustawianie SysTicka najlepiej zrobić tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

I dostajesz przerwanie z częstotliwością 1[kHz]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sty 2016, o 16:19 
Offline
Nowy

Dołączył(a): 15 lis 2014
Posty: 13
Pomógł: 0

Juffre napisał(a):
Wywołaj jeszcze funkcję przed funkcją konfigurującą SysTick:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A ustawianie SysTicka najlepiej zrobić tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

I dostajesz przerwanie z częstotliwością 1[kHz]


Dziwna sprawa w CooCox jak ustawie FREQUENCY 1 to mruga raz na sekundę, a w OpenStm32 jak zejdę FREQUENCY < 11 to w ogóle nic się nie dzieje, przy 11 mruga szybko a poniżej świeci ciągle. Korzystam z płytki MINI-M4 STM32 Funkcja z RCC z OpenStm32:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 34 minutach ]

I jeszcze jedna funkcja z OpenStm32:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sty 2016, o 17:29 
Offline
Nowy

Dołączył(a): 15 lis 2014
Posty: 13
Pomógł: 0

Ogólnie ustawiając maksymalną wartość 16777216 w SysTick_Config w OpenStm32 dioda mruga chyba 4 razy szybciej niż w CooCox.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sty 2016, o 18:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

To znaczy że masz problem z rozbiegówką.
Jaki masz dokładnie procesor i jaką chcesz mieć częstotliwość taktowania?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sty 2016, o 18:48 
Offline
Nowy

Dołączył(a): 15 lis 2014
Posty: 13
Pomógł: 0

Mikrokontroler to STM32F415RG, na razie się uczę, ale powiedzmy, że chce ustawić maksymalną częstotliwość.

------------------------ [ Dodano po: 16 minutach ]

Jest ok pomogła zmiana w OpenStm32 w funkcji SetSysClock z:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


na

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Choć dalej w CooCox jest ta pierwsza wersja to dioda mruga identycznie.
Może mi ktoś w skrócie wytłumaczyć jakie znaczenie ma ta zmiana.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO