两年前的东西了,整理一下,说不定以后就会用到了。
arm对于s3c2440的这个arm的驱动的整理。
其中包括:adc,beeper 蜂鸣器,key 按键,rtc ,timer定时器,UART等的驱动。
项目地址(github):https://github.com/yanjinyun/armS3c2440Drive
****************
这是adc的驱动
#include "s3c2440.h" #if 0 void niuniu(void) { uart_init(); adc_init(); adc_read(); while(1) { itoa(adc_read()); delay(10000); } } #endif #if ADSTART==0 void niuniu(void) { uart_init(); adc_init(); beeper_init(); adc_read(); while(1) { itoa(adc_read()); if(adc_read() > 2500) { beeper_on(); } else { beeper_off(); } delay(10000); } } #endif #if ADSTART==1 void niuniu(void) { uart_init(); adc_init(); beeper_init(); while(1) { adc_enable(); itoa(adc_read()); if(adc_read() > 2500) { beeper_on(); } else { beeper_off(); } delay(10000); } } #endif
********************
蜂鸣器的驱动:
#include "s3c2440.h" #if 0 void niuniu(void) { beeper_init(); while(1) { beeper_on(); delay(10000); beeper_off(); delay(10000); } } #endif #if 1 void niuniu(void) { key_init(); beeper_init(); while(1) { if(key_on(11) == 1) { beeper_on(); } else { beeper_off(); } } } #endif
***************************
这个是按键的驱动key
#include "s3c2440.h" #if 0 // 按键轮巡方式 void niuniu(void) { led_init(); key_init(); while(1) { if(key_on(5) == 1) { led_on(1); } else { led_off(1); } } } #endif #if 1 // 按键中断方式 void niuniu(void) { beeper_init(); key_init(); extint_init(); int_init(); uart_init(); while(1) { puts("key int mode "); delay(1000); } } #endif
**************************
这个是Led灯的驱动:
#include "s3c2440.h" void niuniu(void) { led_init(); while(1) { led_on(2); led_on(4); delay(10000); led_off(2); led_off(4); delay(10000); } }
这个是rtc的驱动
#include "s3c2440.h" #include <string.h> #include <stdlib.h> #if 0 void niuniu(void) { int time[7]; char buf[32], *p[9]; int i; uart_init(); while(1) { puts(" rtc> "); gets(buf); buf[strlen(buf)-2] = '