Convertendo biblioteca Keil para CooCox

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Convertendo biblioteca Keil para CooCox

Mensagempor longo.251272 » 13 Jun 2013 13:37

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 ?
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: Convertendo biblioteca Keil para CooCox

Mensagempor proex » 13 Jun 2013 15:33

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


.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Re: Convertendo biblioteca Keil para CooCox

Mensagempor longo.251272 » 14 Jun 2013 09:04

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.
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: Convertendo biblioteca Keil para CooCox

Mensagempor longo.251272 » 15 Jun 2013 09:54

proex, você esta certo. Verifiquei o certo é RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC, ENABLE);
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: Convertendo biblioteca Keil para CooCox

Mensagempor longo.251272 » 18 Jun 2013 09:43

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.
longo.251272
Byte
 
Mensagens: 318
Registrado em: 08 Nov 2011 11:58
Localização: São Paulo - SP

Re: Convertendo biblioteca Keil para CooCox

Mensagempor proex » 26 Set 2013 10:47

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.

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x