1. gzyueqian
      18078865874
      首頁 > 新聞中心 > > 正文

      arm wince 如何點亮ep9315的兩個led燈

      更新時間: 2007-07-09 11:18:19來源: 粵嵌教育瀏覽量:1314

      今天,做了 一個點亮arm ep9315的led燈的wince應用程序,是用evc4.0用的,為了這個小程序,花了我4天時間
      主要是以前沒有做過wince的應用程序。光裝evc4.0就用了 我2天時間,剛開始裝evc4.0,沒有裝evc4.0 sp3,ep9315sdk包用不成,已選就死機,后來發(fā)現(xiàn)是沒裝evc4 sp3的緣故,裝了一個后,就不死機了,感覺很興奮。

      又長了一個知識點。
      下面是我在evc下驅(qū)動arm gpio的例子
      BOOL ChangeGreenLed (void)
      {
      int fd;
      unsigned char *gpio_base;
      unsigned int *gpio_PEDDR, *gpio_PEDR;

      OutputDebugString(L"TestDrv - LedDrive1\n");

      //PUCHAR ioPortBase;
      PHYSICAL_ADDRESS PortAddress = {0x80840000, 0};
      gpio_base =(PUCHAR) MmMapIoSpace( PortAddress, 0x80,FALSE );

      gpio_PEDR = (unsigned int *)(gpio_base + 0x20);
      gpio_PEDDR = (unsigned int *)(gpio_base + 0x24);

      *gpio_PEDR ^= 0x1;

      for(int x = 0; x< 10 ; x++)
      {
      //gpio_PEDDR = 0xffffffff; // set port E to all output
      *gpio_PEDR ^= 0x00000001; // invert green LED state

      printf("PEDR = %d\n", *gpio_PEDR);

      Sleep(1000);
      }


      OutputDebugString(L"TestDrv - LedDrive2\n");

      return TRUE;
      }

      如果編譯不過,可加上ceddk.h和ceddk.lib兩個文件,就可以了。祝大家學習wince 快樂 。

      #include <ceddk.h>
      #pragma comment(lib,"ceddk.lib")
      void OutPortFun(WORD wAddr,byte bValue)
      {
      PHYSICAL_ADDRESS IoAddress;
      IoAddress.LowPart = wAddr;//硬件地址
      IoAddress.HighPart = 0;
      UCHAR * gpioPtr;
      gpioPtr = ( UCHAR *)MmMapIoSpace( IoAddress,1,FALSE );
      WRITE_PORT_UCHAR(gpioPtr,bValue);
      }
      //開始執(zhí)行看門狗
      void CWDTDlg::OnButtonEnableTimer()
      {
      // TODO: Add your control notification handler code here
      //OUT 120H 0AH ; enter WDT function
      //OUT 120H 0BH ; enable WDT function
      OutPortFun(0x120,0xA);
      OutPortFun(0x120,0xB);
      //OUT 120 0NH ; N=1,2,3 or 4
      OutPortFun(0x120,2);
      //OUT 121 0MH ; M=0,1,2,…F
      OutPortFun(0x121,0);

      }
      //停止看門狗
      void CWDTDlg::OnButtonDisableTimer()
      {
      // TODO: Add your control notification handler code here
      //OUT 120 00H ; Can be disable at any time
      OutPortFun(0x120,0);
      }
      //復位看門狗
      void CWDTDlg::OnButtonResetTimer()
      {
      // TODO: Add your control notification handler code here
      //OUT 121 0MH ; M=0,1,2,…F
      OutPortFun(0x121,0);
      }

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 在线中文字幕有码中文 | 亚洲中文字幕每日更新 | 曰本高清色影视频日本高 | 日本免费二区三区久久 | 亚洲一区二区人妖 | 天天综合网久久综合免费人成 |