PSoC4/LEDチカチカ(ソフト版)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[PSoC4]]
#contents
2015/06/07からのアクセス回数 &counter;
** 参考資料 [#x330ad0b]
[[基板付き体験編 ARM PSoCで作るMyスペシャル・マイコン>htt...
に倣って、LEDチカチカ(ソフト版)を試してみます。
*** プロジェクトの作成 [#r337f051]
[[PSoC4/LEDチカチカ(ハード版)]]と同様に新しいプロジェク...
TopDesignでPorts and PinsからDigital Output Pinをドラッグ...
以下の様に名前をLEDとし、HW connectionのチェックを外しま...
&ref(th_LED_Cfg.jpg);
次にPSoC4_LED_INterrupt.cydwrを開き、PinsタグでLEDにP1[6]...
システムのクロックの設定には、Clocksタブを開きEdit Clock....
&ref(th_Edit_Clock.jpg);
以下の様に内蔵発振回路(IMO)を使って最高の48MHzにセット...
&ref(th_Clock_Setting.jpg);
*** ビルド [#hd5cd045]
main.cを編集する前に、ハード構成だけでビルドをします。
Build→Build PSoC4_LED_interruptを選択します。
次にmain.cをダブルクリックして、以下の様に編集し、再度ビ...
- CLOCK_FREQ=48000000, INT_FREQ=1000で1m秒での割込とします
- CY_ISRは割込関数を定義するときに使用するマクロです
- CyIntSetSysVectorでSysTickの割込ベクタ15にSysTick_Handl...
- SysTick_Configで割込間隔をセットします
- CyGlobalIntEnableマクロで割込可能にします
#pre{{
#include <project.h>
#define CLOCK_FREQ 48000000L // クロック周波数
#define INT_FREQ 1000 // 割り込み周波数
volatile uint32 gTick = 0;
// SysTick Interrupt Handler
CY_ISR(SysTick_Handler)
{
gTick++;
}
// Delay Routine
void Delay(uint32 tick_delay)
{
uint32 tick_entry = gTick;
// wait for tick
while ((gTick - tick_entry) < tick_delay)
continue;
}
int main()
{
/* Place your initialization/startup code here (e.g. ...
// Set the SysTick Interrupt Vector (=15) in Vector ...
CyIntSetSysVector(15, (cyisraddress)SysTick_Handler);
// Start SysTick periodic Interrupt
SysTick_Config(CLOCK_FREQ/INT_FREQ); // SysTick=...
// Enable global interrupts
CyGlobalIntEnable;
for(;;)
{
/* Place your application code here. */
LED_Write(~LED_Read()); // Toggle LED Termi...
Delay(500);
}
}
}}
*** プログラムの書き込み [#oe212e77]
Debug→Programでプログラムが書き込まれます。
** コメント [#b3d764a6]
#vote(おもしろかった[1],そうでもない[1],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
終了行:
[[PSoC4]]
#contents
2015/06/07からのアクセス回数 &counter;
** 参考資料 [#x330ad0b]
[[基板付き体験編 ARM PSoCで作るMyスペシャル・マイコン>htt...
に倣って、LEDチカチカ(ソフト版)を試してみます。
*** プロジェクトの作成 [#r337f051]
[[PSoC4/LEDチカチカ(ハード版)]]と同様に新しいプロジェク...
TopDesignでPorts and PinsからDigital Output Pinをドラッグ...
以下の様に名前をLEDとし、HW connectionのチェックを外しま...
&ref(th_LED_Cfg.jpg);
次にPSoC4_LED_INterrupt.cydwrを開き、PinsタグでLEDにP1[6]...
システムのクロックの設定には、Clocksタブを開きEdit Clock....
&ref(th_Edit_Clock.jpg);
以下の様に内蔵発振回路(IMO)を使って最高の48MHzにセット...
&ref(th_Clock_Setting.jpg);
*** ビルド [#hd5cd045]
main.cを編集する前に、ハード構成だけでビルドをします。
Build→Build PSoC4_LED_interruptを選択します。
次にmain.cをダブルクリックして、以下の様に編集し、再度ビ...
- CLOCK_FREQ=48000000, INT_FREQ=1000で1m秒での割込とします
- CY_ISRは割込関数を定義するときに使用するマクロです
- CyIntSetSysVectorでSysTickの割込ベクタ15にSysTick_Handl...
- SysTick_Configで割込間隔をセットします
- CyGlobalIntEnableマクロで割込可能にします
#pre{{
#include <project.h>
#define CLOCK_FREQ 48000000L // クロック周波数
#define INT_FREQ 1000 // 割り込み周波数
volatile uint32 gTick = 0;
// SysTick Interrupt Handler
CY_ISR(SysTick_Handler)
{
gTick++;
}
// Delay Routine
void Delay(uint32 tick_delay)
{
uint32 tick_entry = gTick;
// wait for tick
while ((gTick - tick_entry) < tick_delay)
continue;
}
int main()
{
/* Place your initialization/startup code here (e.g. ...
// Set the SysTick Interrupt Vector (=15) in Vector ...
CyIntSetSysVector(15, (cyisraddress)SysTick_Handler);
// Start SysTick periodic Interrupt
SysTick_Config(CLOCK_FREQ/INT_FREQ); // SysTick=...
// Enable global interrupts
CyGlobalIntEnable;
for(;;)
{
/* Place your application code here. */
LED_Write(~LED_Read()); // Toggle LED Termi...
Delay(500);
}
}
}}
*** プログラムの書き込み [#oe212e77]
Debug→Programでプログラムが書き込まれます。
** コメント [#b3d764a6]
#vote(おもしろかった[1],そうでもない[1],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
ページ名:
SmartDoc