2017-03-08 14 views
0

STM32F103C8T6でTIM6を使用してLEDを点滅させようとしていますが、タイマーが動作していないとわかります。使用できるように初期化する必要があるパラメータタイマー?下のコードですか?そう失敗する運命にあるTIM6を使用しようと、TIM4 -TIM6、基本時間生成関数が動作しない

#include "stm32f10x.h" 

int main(void) 
{ 
RCC->APB1ENR |= 0x00000010 ; // CLOCK SIGNAL TO BASIC TIMER 6 IS INITIALIZED 

RCC->APB2ENR |= 0x00000004 ; //CLOCK SIGNAL TO GPIO PORT A IS INITIALIZED 

GPIOA->CRL |= 0x33333333 ; // LOWER PINS OF GPIO PORT A ARE DEFINED AS PUSH AND PULL OUTPUT 

TIM6->CR1 |= 0x0081 ; // COUNTER AND AUTO RELOAD BUFFER ENABLED 

TIM6->PSC |= 0x1F40 ; // PRESCALER SET AS 8000 

TIM6->ARR |= 0x05DC ; // AUTO RELOAD REGISTER SET AT 1000 

while(1) 
{ 
    if (TIM6->CNT == 1000) 
    { 
     GPIOA->BSRR |= 0X0044 ; //SET PINS 2 AND 6 OF GPIOA TO HIGH 
    } 

    if (TIM6->CNT == 0x05DC) 
    { 
     GPIOA->BRR |= 0X0044 ; //SET PINS 2 AND 6 OF GPIOA TO HIGH 
    } 
} 

} 
+0

タイマー値と等しいかどうかのテストは悪い考えです。 '> = '比較を使用してください。タイマーが非常にゆっくりと実行されていない限り、タイマーが正確な値になっているときに比較を実行する可能性は低いです。 –

+0

私はちょうどそれを訂正しましたが、まだ動作していません..... –

+0

デバッガ、ブレークポイントにタイマのレジスタが表示され、タイマがカウントアップしているかどうかを確認できますか?それが正しく初期化されているかどうかがわかります。 –

答えて

2

STM32F103C8T6はTIM1を持っています。 the datasheet(17ページ)の「表4.タイマー機能の比較」を参照してください。

関連する問題