STM32F4DISCOVERY i COOCOX pierwsze kroki miganie ledami

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC
Awatar użytkownika

ursus_arctos
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 2083
Rejestracja: 11 cze 2011, 18:29
Lokalizacja: Warszawa / Lublin

#31

Post napisał: ursus_arctos » 14 lis 2012, 10:59

UWAGA - Ostrzeżenie dla wszystkich korzystających z CoIDE
W bibliotekach ściąganych przez CoIDE jest bug - funkcja SystemInit jest napisana (i poprawna), ale nie jest wywoływana w ResetHandler!!! W związku z tym procesor działa bez ustawionego mnożnika (w moim przypadku 20x wolniej niż powinien). Nie robiłem żadnych intensywnych obliczeń i zorientowałem się dopiero ostatnio, że coś jest grubo nie tak.
Wywołanie SystemInit powinno być gdzieś na początku ResetHandler. Test na włączenie mnożnika jest prosty:

Kod: Zaznacz cały

inline void Delay(volatile int count) { while (count--); }
Wywołanie Delay(n) na procesorze taktowanym n Hz trwa 1.5..2 s.



Tagi:

Awatar użytkownika

Autor tematu
AOLEK
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 9
Posty: 376
Rejestracja: 17 lip 2011, 20:27
Lokalizacja: Świdnica

#32

Post napisał: AOLEK » 28 cze 2013, 06:48

... wczoraj robiąc porządki w szufladzie znalazłem STM32F4DISCOVERY :) mając trochę czsu zainstalowałem środowisko COOCOX, niestety pamięć mam dobrą, ale krótką dużo pozapominałem.

Znalazłem NA TEJ TURECKIEJ STRONCE kilka przykładów i najciekawszy z czterema PWMami.

Chodzi oto, że tylko ten przykład z PWM mi się niekompiluje wywala takie cos:

Kod: Zaznacz cały

GCC HOME: C:\Program Files\GNU Tools ARM Embedded\4.7 2013q1\bin
compile: 
    [mkdir] Skipping C:\CooCox\CoIDE\workspace\pwm5\pwm5\Debug\bin because it already exists.
    [mkdir] Skipping C:\CooCox\CoIDE\workspace\pwm5\pwm5\Debug\obj because it already exists.
       [cc] Starting dependency analysis for 16 files.
       [cc] Parsing ..\..\..\cmsis_boot\stm32f4xx.h
       [cc] Parsing ..\..\..\cmsis\core_cm4.h
       [cc] Parsing ..\..\..\cmsis_boot\stm32f4xx_conf.h
       [cc] Parsing ..\..\..\cmsis\core_cmInstr.h
       [cc] Parsing ..\..\..\cmsis\core_cmFunc.h
       [cc] Parsing ..\..\..\cmsis\core_cm4_simd.h
       [cc] 16 files are up to date.
       [cc] 1 total files to be compiled.
       [cc] 0 files to be recompiled from dependency analysis.
       [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F407VG -DSTM32F4XX -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -IC:\CooCox\CoIDE\workspace\pwm5\cmsis -IC:\CooCox\CoIDE\workspace\pwm5\cmsis_lib\include -IC:\CooCox\CoIDE\workspace -IC:\CooCox\CoIDE\workspace\pwm5 -IC:\CooCox\CoIDE\workspace\pwm5\cmsis_boot -IC:\CooCox\CoIDE\workspace\pwm5\STM32F4-Discovery -IC:\CooCox\CoIDE\workspace\pwm5\cmsis_lib C:\CooCox\CoIDE\workspace\pwm5\main.c
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:18:2: error: unknown type name 'TIM_TimeBaseInitTypeDef'
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:19:2: error: unknown type name 'TIM_OCInitTypeDef'
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c: In function 'GPIO_Setup': 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:89:4: error: 'GPIO_InitStructure' undeclared (first use in this function) 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:89:4: note: each undeclared identifier is reported only once for each function it appears in
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c: In function 'PWM_Setup': 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:167:25: error: request for member 'TIM_Period' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:168:25: error: request for member 'TIM_Prescaler' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:169:25: error: request for member 'TIM_ClockDivision' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:170:25: error: request for member 'TIM_CounterMode' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:170:44: error: 'TIM_CounterMode_Up' undeclared (first use in this function) 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:172:4: warning: implicit declaration of function 'TIM_TimeBaseInit' [-Wimplicit-function-declaration] 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:175:23: error: request for member 'TIM_OCMode' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:175:37: error: 'TIM_OCMode_PWM1' undeclared (first use in this function) 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:176:23: error: request for member 'TIM_OutputState' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:176:42: error: 'TIM_OutputState_Enable' undeclared (first use in this function) 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:177:23: error: request for member 'TIM_Pulse' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:178:23: error: request for member 'TIM_OCPolarity' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:178:41: error: 'TIM_OCPolarity_High' undeclared (first use in this function) 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:182:31: error: 'TIM_OCPreload_Enable' undeclared (first use in this function) 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:185:23: error: request for member 'TIM_OutputState' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:182:4: warning: implicit declaration of function 'TIM_OC1PreloadConfig' [-Wimplicit-function-declaration] 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:180:4: warning: implicit declaration of function 'TIM_OC1Init' [-Wimplicit-function-declaration] 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:186:23: error: request for member 'TIM_Pulse' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:188:4: warning: implicit declaration of function 'TIM_OC2Init' [-Wimplicit-function-declaration] 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:190:4: warning: implicit declaration of function 'TIM_OC2PreloadConfig' [-Wimplicit-function-declaration] 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:193:23: error: request for member 'TIM_OutputState' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:194:23: error: request for member 'TIM_Pulse' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:196:4: warning: implicit declaration of function 'TIM_OC3Init' [-Wimplicit-function-declaration] 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:198:4: warning: implicit declaration of function 'TIM_OC3PreloadConfig' [-Wimplicit-function-declaration] 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:201:23: error: request for member 'TIM_OutputState' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:202:23: error: request for member 'TIM_Pulse' in something not a structure or union
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:204:4: warning: implicit declaration of function 'TIM_OC4Init' [-Wimplicit-function-declaration] 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:206:4: warning: implicit declaration of function 'TIM_OC4PreloadConfig' [-Wimplicit-function-declaration] 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:208:4: warning: implicit declaration of function 'TIM_ARRPreloadConfig' [-Wimplicit-function-declaration] 
       [cc] C:\CooCox\CoIDE\workspace\pwm5\main.c:211:4: warning: implicit declaration of function 'TIM_Cmd' [-Wimplicit-function-declaration] 

BUILD FAILED
Total time: 2 seconds
Co robię nietak ?[/code]
SPRZEDAM dwie nakrętki kulowe 20x5 więcej w dziale GIEŁDA !


Raven
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 681
Rejestracja: 24 paź 2011, 11:54
Lokalizacja: Warszawa

#33

Post napisał: Raven » 28 cze 2013, 09:11

Nie brakuje jakiegoś include do headera od timerów?

Awatar użytkownika

ursus_arctos
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 2083
Rejestracja: 11 cze 2011, 18:29
Lokalizacja: Warszawa / Lublin

#34

Post napisał: ursus_arctos » 28 cze 2013, 09:51

API STM32 urąga wszelkim zasadom pisania w języku C. CoIDE trochę ułatwia sprawę, ale tylko trochę...

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”