スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

Cortex-M3うごかねええええぇぇぇぇぇ

Cortex-M3 どう頑張っても72MHzで動作しませんでした。

下のプログラムではどう見ても8MHzで動作していました。

確認はオシロスコープでやっているので確認ミスはないと思います。

LEDの信号線をオシロで見ています。LEDのオンオフスピードは1MHz程度。

本当にどうすればいいのだろうか・・・

開発環境:Eclipse、WindowsXPpro

マイコン:Cortex-M3

外部クロック(クリスタル)が8MHzの下記のものを使っています。
http://www.olimex.com/dev/stm32-h103.html

誰か助けてーー><

以下ソース

LEDを点滅させるプログラム
内部PLLで8MHz⇒72MHzをしているつもり。

main.c

//////////////////////////////////
#include "stm32f10x_lib.h"
/* Private variables ---------------------------------------------------------*/
GPIO_InitTypeDef GPIO_InitStructure;
ErrorStatus HSEStartUpStatus;
volatile unsigned long _1ms_counter;
/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
void NVIC_Configuration(void);
void port_init(void);

int main(void){
RCC_Configuration(); // System Clocks Configuration
NVIC_Configuration();
port_init();
//sys_tick_init();

while(1){
GPIO_SetBits(GPIOC, GPIO_Pin_12);//LED_off
GPIO_ResetBits(GPIOC, GPIO_Pin_12);//LED_on
}
}

void RCC_Configuration(void)
{
/* RCC system reset(for debug purpose) */
RCC_DeInit();
/* Enable HSE */
RCC_HSEConfig(RCC_HSE_ON);
/* Wait till HSE is ready */
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
/* Flash 2 wait state */
FLASH_SetLatency(FLASH_Latency_2);
/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);
/* PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);
/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);
/* PLLCLK = 8MHz * 9 = 72 MHz */
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
/* Enable PLL */
RCC_PLLCmd(ENABLE);
/* Wait till PLL is ready */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
/* Select PLL as system clock source */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
/* Wait till PLL is used as system clock source */
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
}

void NVIC_Configuration(void){
#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif
}
//------------------------------------------------------------------------------
void port_init(void){
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
// Configure PC.12 as output push-pull (LED)
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);

}
//////////////////////



以前紹介した先輩の富士山山頂で叩いてみたシリーズも残る1作となったようです。

富士山山頂に行く予定のある人は必見!!

もしかしたらあえるかも!!

富士山山頂で「Cagayake! girls」を叩いてみた
http://www.nicovideo.jp/watch/sm8332626





にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

コメントの投稿

非公開コメント

プロフィール

回路師

Author:回路師
趣味がロボットと動画製作です。
便利な機械やあほなマシンの動画を投稿しています.

最新記事
最新コメント
カテゴリ
電子工作キット








月別アーカイブ
書籍






Twitter
リンク
RSSリンクの表示
ソーシャル

検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。