Página 1 de 1

Convertendo biblioteca Keil para CooCox

MensagemEnviado: 13 Jun 2013 13:37
por longo.251272
Boa tarde pessoal, comecei a converter algumas bibliotecas do kit que esta em Keil para o CooCox e esbarrei na função RCC_APB2Periph_GPIOA.

Não estou achando ela no arquivo stm32f4xx_rcc.h, no arquivo stm32f10x_rcc.h tem, mas quero evitar de acrescentar ele ao projeto.

Alguém sabe qual a função no stm32f4xx_rcc.h equivalente ao RCC_APB2Periph_GPIOA do stm32f10x_rcc.h ?

Re: Convertendo biblioteca Keil para CooCox

MensagemEnviado: 13 Jun 2013 15:33
por proex
No 407 o RCC_APB2Periph_GPIOA não existe. Vc tem que usar a funçao RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState)


Fica assim então:
RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA, ENABLE);


.

Re: Convertendo biblioteca Keil para CooCox

MensagemEnviado: 14 Jun 2013 09:04
por longo.251272
Valeu pela dica proex,

Acabei atualizando desse forma,

// RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd( RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC, ENABLE);

Fiquei mais na dúvida porque os valores definidos em RCC_AHB1Periph_GPIOX no stm32f4xx estão diferentes.

Re: Convertendo biblioteca Keil para CooCox

MensagemEnviado: 15 Jun 2013 09:54
por longo.251272
proex, você esta certo. Verifiquei o certo é RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC, ENABLE);

Re: Convertendo biblioteca Keil para CooCox

MensagemEnviado: 18 Jun 2013 09:43
por longo.251272
Bom dia pessoal, estou apanhando para atualizar essa rotina :

Código: Selecionar todos
void delay_us(u32 Nus)
{
    SysTick_SetReload(delay_fac_us * Nus);
    SysTick_CounterCmd(SysTick_Counter_Clear);[color=#FF0000] // error: 'SysTick_Counter_Clear' undeclared (first use in this function)[/color]
    SysTick_CounterCmd(SysTick_Counter_Enable); // error: 'SysTick_Counter_Enable' undeclared (first use in this function)
    do
    {
        Status = SysTick_GetFlagStatus(SysTick_FLAG_COUNT);
    }while (Status != SET);
    SysTick_CounterCmd(SysTick_Counter_Disable);
   SysTick_CounterCmd(SysTick_Counter_Clear);
}


Vendo a documentação não cheguei a nenhuma conclusão.

/ ************************************************* ******************************
* Function Name: SysTick_CounterCmd
* Description: Enables or disables the SysTick counter.
* Input: - SysTick_Counter: new state of the SysTick counter.
* This parameter can be one of the Following values:
* - SysTick_Counter_Disable: Disable counter
* - SysTick_Counter_Enable: Enable counter
* - SysTick_Counter_Clear: Clear counter value to 0
* Output: None
* Return: None
************************************************** ***************************** /
void SysTick_CounterCmd (u32 SysTick_Counter)
{
   / * Check the parameters * /
   assert_param (IS_SYSTICK_COUNTER (SysTick_Counter));


   if (SysTick_Counter == SysTick_Counter_Enable)
   {
     SysTick-> CTRL | = SysTick_Counter_Enable;
   }
   else if (SysTick_Counter == SysTick_Counter_Disable)
   {
     SysTick-> CTRL & = SysTick_Counter_Disable;
   }
   else / * SysTick_Counter SysTick_Counter_Clear == * /
   {
     SysTick-> VAL = SysTick_Counter_Clear;
   }
}


Estou apanhando para resolver esse problema.

Re: Convertendo biblioteca Keil para CooCox

MensagemEnviado: 26 Set 2013 10:47
por proex
Eu nao estou entendendo o que vc esta querendo fazer com o Systick.

No 407 não precisa dessas linhas que vc colocou ai.

Basta isso:

SysTick_Config(SystemCoreClock / 1000) // configura e habilita o Systick para interromper a cada 1mS

void SysTick_Handler(void) // Rotina de interrupçao do Systick
{
suas rotinas
}

Veja que nao precisa nada daquilo que vc esta colocando.

.