AT91SAM7S64入門筆記----LED閃爍實驗

        今天終於把ARM開發軟硬件平臺搭載完成,開始了ARM的學習之旅.剛接觸ARM7,感覺不知從哪裏入手比較好.因爲之前有單片機的開發基礎,就先把它當做單片機來使用,於是我重新開始學習"單片機"了.我當初就是從最簡單的LED閃爍實驗開始學習的,不凡也弄一個在ARM7上跑跑,通過這個實驗可以瞭解GPIO的基本操作.

        跟51,AVR等單片機很相似,7S64也是通過對寄存器的操作來實現I/O口的輸入輸出,在本實驗中用到的寄存器有:PIO_PER(PIO使能寄存器),PIO_OER(PIO輸出使能寄存器),PIO_SODR(PIO置位輸出數據寄存器),PIO_CODR(PIO清零輸出數據寄存器).以下程序在MDK-ARM4.11上編譯通過並測試成功.

 

示例代碼:

#include<at91sam7s64.h>
#define uchar unsigned char
#define uint  unsigned int
#define LED_MASK (1<<0)

AT91S_PIO * pPIO = AT91C_BASE_PIOA;         /* Global Pointer to PIO */
void Delay(uint tt)
{
 uint i;
 while(tt-->0)
  for(i=0;i<1000;i++);

}

main()
{
 *AT91C_PMC_PCER = (1 << AT91C_ID_PIOA);
    pPIO->PIO_PER  = LED_MASK;                /* Enable PIO for LED */
    pPIO->PIO_OER  = LED_MASK;                /* LED is Output     */
    pPIO->PIO_SODR = LED_MASK;                /* Turn off LED("1")  */

 while(1)
 {
  pPIO->PIO_CODR=LED_MASK;
  Delay(1000);
  pPIO->PIO_SODR=LED_MASK;
  Delay(1000);
 }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章