首先看一下LaunchPad , MSP430G2553示意圖
動作:使用按鍵P1.3(圖左下角Push Button位置)來控制LED閃爍,當按下按鍵時兩顆LED會交互閃爍。
As below is code content:
#include <msp430g2553.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //Turn off watch dog
P1OUT = 0x09; //setting PT1.3 & PT1.0 (LED1 default is high) is high level P1DIR = 0x41; //setting PT1.0 & PT1.6 are output
P1REN = 0X08; //setting PT1.3 pull-up resistor
char flash;
for ( ; ; ) //Polling Loop
{
if ((P1IN & 0x08) == 0) //If P1IN & 0x08 is low , the for loop will be executed
for(flash = 0 ; flash < 20; flash++)
{
P1OUT ^= 0x41; //NOT BIT0 & BIT6 level
__delay_cycles(500000);
}
}
}
/*__delay_cycles內填的數字為cycle次數。(並不是代表真正的延遲秒數)。而真正的延遲秒數必須根據裝置設定的工作時脈頻率與cycle次數而計算出來的。函數內的可填入的無號長整數unsigned long表示數值範圍為0到4294967295,(也就是2的32次方-1),注意!!如果填入數值超過4294967295除錯將會有溢值的錯誤訊息。範例中所使用預設的DCO工作頻率為1MHz,換算成時間週期為10^-6(s),函數內填數字如果為100000,經計算結果,則延遲時間為100ms。玩家可以試著改改看這個參數,調整閃爍間隔( 計算公式: 10^-6週期s * 100000 cycle = 0.1s = 100ms )*/
操作影片:
MSP-EXP430G2 LaunchPad Overview |
動作:使用按鍵P1.3(圖左下角Push Button位置)來控制LED閃爍,當按下按鍵時兩顆LED會交互閃爍。
As below is code content:
#include <msp430g2553.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //Turn off watch dog
P1OUT = 0x09; //setting PT1.3 & PT1.0 (LED1 default is high) is high level P1DIR = 0x41; //setting PT1.0 & PT1.6 are output
P1REN = 0X08; //setting PT1.3 pull-up resistor
char flash;
for ( ; ; ) //Polling Loop
{
if ((P1IN & 0x08) == 0) //If P1IN & 0x08 is low , the for loop will be executed
for(flash = 0 ; flash < 20; flash++)
{
P1OUT ^= 0x41; //NOT BIT0 & BIT6 level
__delay_cycles(500000);
}
}
}
/*__delay_cycles內填的數字為cycle次數。(並不是代表真正的延遲秒數)。而真正的延遲秒數必須根據裝置設定的工作時脈頻率與cycle次數而計算出來的。函數內的可填入的無號長整數unsigned long表示數值範圍為0到4294967295,(也就是2的32次方-1),注意!!如果填入數值超過4294967295除錯將會有溢值的錯誤訊息。範例中所使用預設的DCO工作頻率為1MHz,換算成時間週期為10^-6(s),函數內填數字如果為100000,經計算結果,則延遲時間為100ms。玩家可以試著改改看這個參數,調整閃爍間隔( 計算公式: 10^-6週期s * 100000 cycle = 0.1s = 100ms )*/
操作影片:
留言
張貼留言