forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
STM32: Po zavolání SysTick_Config se změní frekvence

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> ARM
 
hazardrok
Profesionál
Profesionál


Založen: 16.1.2012
Příspěvky: 130

PříspěvekZaslal: 09 prosinec 2013, 10:37    Předmět: STM32: Po zavolání SysTick_Config se změní frekvence Citovat

Ahoj, mám takový kód:
kód:

#include "sys/types.h"
#include "stm32f10x.h"
#include "main.h"

int main(void){                         // Main function.  Called by the startup code.
  static uint8_t i = 0;
  SysTick_Config(SystemCoreClock/200);   //10-100ms,100-10ms,1000-1ms,10000-100us,100000-10us,
  init_mcu();
  for(;;){
    i = ~i;
    if(i == 0){GPIOC->BSRR = GPIO_BSRR_BS8;}
    else{GPIOC->BSRR = GPIO_BSRR_BR8;}
    }
  }

__INLINE static void init_mcu(void){
  RCC->APB2ENR = 0                      // Most of the peripherals are connected to APB2. Turn on the clocks for the interesting peripherals
  | RCC_APB2ENR_IOPCEN;                 // I/O port C clock enable   
 
  GPIOC->CRH = 0                        // SET GPIOC as Output
  | GPIO_CRH_MODE8_0                    // Max output speed 10MHz - LED0
  | GPIO_CRH_MODE9_0;                   // Max output speed 10MHz - LED1
  }

void SysTick_Handler(void){
  static uint8_t j = 0;
  j = ~j;
  if(j == 0){GPIOC->BSRR = GPIO_BSRR_BR9;}
  else{GPIOC->BSRR = GPIO_BSRR_BS9;}
  }


Zjistil jsem, že pokud je funkce SysTick_Config(SystemCoreClock/200) zakomentována, tak mi pinožka osciloskopu na pinu GPIOC8 kmitá na frekvenci cca 1,5Mhz. Pokud jí ale zavolám tak se tato frekvence změní na 1,7Mhz.
Nemáte někdo vysvětlení pro toto chování? Mě to totiž hlava ani po poradě s datasheetem nebere. Dík.

Arrow administrator: přejmenováno z "STM32 a SysTick"
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 464

PříspěvekZaslal: 09 prosinec 2013, 22:25    Předmět: Citovat

Tak jako aktivoval/deaktivoval jsi periodicke preruseni od SYSTICKU s relativne vysokou kadenci , takze se nediv ze se tam spotrebuje/nespotrebuje nejakej strojovej cas procesoru a tim padem i rychlost jakym bezi kod v mainu.
_________________
x51 , ARM , XILINX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

 
hazardrok
Profesionál
Profesionál


Založen: 16.1.2012
Příspěvky: 130

PříspěvekZaslal: 10 prosinec 2013, 8:08    Předmět: Citovat

pokud by se rychlost snížila tak se tomu divit nebudu...to že je ale o 13% větší mi nedá spát. Ten procesor si prostě žije vlastním životem...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 464

PříspěvekZaslal: 10 prosinec 2013, 20:22    Předmět: Citovat

Tak tu zatěž zvěč víc, jestli to bude mít nějakou progresi.
Možná by bylo zajímavý nepracovat v přerušení se stejným I/O portem , v tomto případě C. Zkus dělat v tom přerušení něco jinýho.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> ARM Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)