最新情報
ナウいマイコン PSoC4200 タイマー割込み SysTick (備忘録)
PSoC4200でタイマー割込み。
コンポーネントでタイマーを使用する方法もあるでしょうが
「ARM Cortex-M0」には、便利なタイマーがあるらしいのでそれを使用します。
1秒毎にタイマー割込みを発生させカウントアップしLCDで確認するだけのプログラム。
/* ========================================
 *
 * Copyright YOUR COMPANY, THE YEAR
 * All Rights Reserved
 * UNPUBLISHED, LICENSED SOFTWARE.
 *
 * CONFIDENTIAL AND PROPRIETARY INFORMATION
 * WHICH IS THE PROPERTY OF your company.
 *
 * ========================================
*/
#include "project.h"
#include	<stdio.h>
#include	"I2CLCDDRV.h"
char	lcd_str[32];
#define	SYSTEM_CLK	2400000000			// SYSTEM_CLK	2400000000(24MHz) の時
#define	SYSTEM_CLK_100MS	1000		// 1000 で 100mS 周期割込み
volatile uint32	SysTick_timer;			// Systick timer 用 volatile宣言しておく
#define	SysTick_count	10;				// 1秒枚に割込み
volatile uint32	SysTick_counter = SysTick_count;
char	Uart_data;
CY_ISR(SysTick_Handler)				//割込みをマクロCY_ISRで定義する
{
	if (SysTick_counter == 0){
		SysTick_timer++;			//割込みルーチンは、SysTick_timer をインクリメントするだけ
		SysTick_counter = SysTick_count;
	}
		SysTick_counter --;
}
int main(void)
{
	CyIntSetSysVector(CY_INT_SYSTICK_IRQN,(cyisraddress)SysTick_Handler);	//SysTick割込みベクタに、SysTick_Handlerのアドレスをセット
	SysTick_Config(SYSTEM_CLK / SYSTEM_CLK_100MS);
	
    CyGlobalIntEnable; /* Enable global interrupts. */
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    I2CM_Start();		// I2C 開始
	I2C_LCD_Init();		// I2C LCD 初期化
	
	
    for(;;)
    {
        /* Place your application code here. */
		
		I2C_LCD_position(1,1);						// LCD X,Y
		sprintf(lcd_str,"%5ld",SysTick_timer);		// データ数を文字に変換
		I2C_LCD_Char_PrintString("Time = ");		// LCDで確認
		I2C_LCD_Char_PrintString(lcd_str);			// LCDで確認
	}
}
/* [] END OF FILE */
ちゃんと、1秒毎に数字増えてます!!
加納 大裕(かのう だいゆう)
- 
- 2025.10.29
 - 薪ストーブ実演展示 東栄フェスティバル
 
 - 
- 2025.10.29
 - 薪ストーブ実演展示、売木村秋色感謝祭
 
 - 
- 2025.09.26
 - 薪ストーブ、新城軽トラ市に出店します。
 
 - 
- 2025.09.05
 - 薪ストーブ出展 GP CAMP.Fes2025
 
 - 
- 2025.08.29
 - なぜ加納製作所の薪ストーブは薪を炭にしてから燃焼させるのか?
 
 









