S3C6410裸機LCD液晶驅動程序,采用飛凌公司的OK6410開發板
0.png (48.57 KB, 下載次數: 63)
下載附件
2017-3-16 02:44 上傳
全部源碼下載:
OK6410.rar
(452.03 KB, 下載次數: 10)
2017-3-16 02:45 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
主程序:
- #include <math.h>
- #include "main.h"
- #include "REG_S3C6410.h"
- #include "ucos_ii.h"
- #include "app_cfg.h"
- #include "ASCII.h"
- #include "lcd.h"
- #include "CP15.h"
- #define LED_CON rGPMCON
- #define LED_PUD rGPMPUD
- #define LED_DAT rGPMDAT
- #define BUZZER_CON rGPFCON
- #define BUZZER_PUD rGPFPUD
- #define BUZZER_DAT rGPFDAT
- OS_STK MainTaskStk[MainTaskStkLengh];
- OS_STK Task0Stk [Task0StkLengh]; // Define the Task0 stack
- OS_STK Task1Stk [Task1StkLengh]; // Define the Task1 stack
- OS_STK Task2Stk [Task2StkLengh]; // Define the Task1 stack
- //extern unsigned long HandleIRQ;
- unsigned char i,j,k;
- void Delay_ms(int time)
- {
- volatile unsigned int i,j;
- for(i = 0; i < 2000000; i++)
- for(j=0; j<time; j++);
- }
- void GPIO_Init()
- {
- LED_CON = 0x11111;
- LED_PUD = 0x00;
- LED_DAT = 0X1F;
-
- BUZZER_CON|= BIT30;
- BUZZER_PUD = 0x00;
- }
- void MainTask(void *pdata)
- {
- while(1)
- {
- i++;
- LCD_PutString(0,0,(u32 **)pLCD_Win0Buffer,"Task0:\nTask1:\nTask2:\n",0x00ff00,0x000000);
- LCD_PutHEX(48,0,(u32 **)pLCD_Win0Buffer,i,0x00ff00,0x000000);
- LCD_PutHEX(48,16,(u32 **)pLCD_Win0Buffer,j,0x00ff00,0x000000);
- LCD_PutHEX(48,32,(u32 **)pLCD_Win0Buffer,k,0x00ff00,0x000000);
- //OSTimeDly(OS_TICKS_PER_SEC);
- }
-
- }
- void Task0 (void *pdata)
- {
- while(1)
- {
- i++;
- if(i>99)
- i=0;
- OSTimeDly(OS_TICKS_PER_SEC);
- }
- }
- void Task1 (void *pdata)
- {
- while(1)
- {
- j++;
- OSTimeDly(OS_TICKS_PER_SEC);
- }
- }
- void Task2 (void *pdata)
- {
- while(1)
- {
- k++;
- OSTimeDly(OS_TICKS_PER_SEC);
- }
- }
- void SystemInit()
- {
- GPIO_Init();
- LCD_Win0Init();
- LCD_Win0SelectBuffer(0);
- LCD_Win0Clear(0x000000);
- OSInit ();
- OSTimeSet(0);
- OSTaskCreate (MainTask,(void *)0, &MainTaskStk[MainTaskStkLengh - 1], MainTaskPrio);
- OSTaskCreate (Task0,(void *)0, &Task0Stk[Task0StkLengh - 1], Task0Prio);
- OSTaskCreate (Task1,(void *)0, &Task1Stk[Task1StkLengh - 1], Task1Prio);
- OSTaskCreate (Task2,(void *)0, &Task2Stk[Task2StkLengh - 1], Task2Prio);
- OSStart ();
- }
- void Main()
- {
- SystemInit();
- while(1)
- {
- LCD_PutHEX(0,0,(u32 **)pLCD_Win0Buffer,rAPLL_LOCK,0x00ffff,0x000000);
- LCD_PutHEX(0,16,(u32 **)pLCD_Win0Buffer,rMPLL_LOCK,0x00ffff,0x000000);
- LCD_PutHEX(0,32,(u32 **)pLCD_Win0Buffer,rEPLL_LOCK,0x00ffff,0x000000);
-
- LCD_PutHEX(0,48,(u32 **)pLCD_Win0Buffer,rAPLL_CON,0x00ffff,0x000000);
- LCD_PutHEX(0,64,(u32 **)pLCD_Win0Buffer,rMPLL_CON,0x00ffff,0x000000);
- OSStart ();
- }
- }
復制代碼
|