摘要: FL2440的板子只有TOUT0和TOUT1引出了扩展管脚,而TOUT0与GPB0复用,GPB0又连接着蜂鸣器,所以一用TOUT0输出pwm信号蜂鸣器就大叫不止,而TOUT1又因为Wince系统使用Timer1作为系统定时器,所以在Wince下用TOUT1输出pwm信号会马上死机。本打算用定时器的中断函数来输出pwm信号,但是感觉WinCE封装ADS下的__irq函数很难搞,无意中发现WinCE有比较精准的计时函数,决定干脆用这个来做pwm信号以便控制舵机。关键代码:需要头文件:#include "ceddk.h"#include "pkfuncs.h" 阅读全文
posted @ 2013-06-20 09:44 wuqi1003 阅读(1272) 评论(0) 推荐(0) 编辑
摘要: 最近正好需要用C语言操作一下文件指针,尤其是主函数与子函数之间互相传递,所以顺便学习总结一下。第1种方式:将文件指针定义为全局变量。#include "stdio.h"FILE *fp1; //将文件指针定义为全局变量void sub(void){ fp1=fopen("test.txt","awt");//如果有选项a可以在保证文件的原有内容不丢失,新内容写在后面,如果没有a则会删除原有内容替换为新内容。 fprintf(fp1,"\n%s\n","测试文件指针作为全局变量是否可以传递到子函数" 阅读全文
posted @ 2013-01-23 10:39 wuqi1003 阅读(11779) 评论(0) 推荐(0) 编辑
摘要: 有些时候需要子函数将一个数组返回出来,通常是两种方法,一种是靠指针,另一种是结构体。一、先来看依靠指针怎么做例程1: 1 #include "stdio.h" 2 3 char *test(char *tmp) 4 { 5 return tmp; 6 } 7 8 void main(void) 9 {10 printf("%s",test("第一个测试例子\n"));11 }例程1中的test函数如果写成下面的形式,就无法顺利编译。例程2: 1 #include "stdio.h" 2 3 char *test() 阅读全文
posted @ 2013-01-09 21:02 wuqi1003 阅读(28945) 评论(1) 推荐(0) 编辑
摘要: 功能:将通过串口接收到的内容再发送出去,在PC机上看到的现象就是在串口通信软件中输入什么就会实时地显示什么。主文件:serial.c 1 //最常用的寄存器是ULCON、UCON、UBRDIV、UTRSTAT、UTXH、URXH这六个寄存器 2 #define ULCON0 (*(volatile unsigned *)0X50000000) //UART线控制寄存器 3 #define UCON0 (*(volatile unsigned *)0X50000004) //UART控制寄存器 4 #define UFCON0 (... 阅读全文
posted @ 2012-12-15 19:12 wuqi1003 阅读(1596) 评论(0) 推荐(0) 编辑
摘要: 先放电路图,注意晶振两侧电容的选择,注意LED与电压之间电阻阻值的大小。程序为:注意一定要包含pic.h文件,一定要先确定_XTAL_FREQ的大小才能使用__delay_ms这个宏,注意LED=~LED的妙用。/*功能:令LED按一定时间间隔闪烁*/#include <pic.h>#define _XTAL_FREQ 4000000UL //振荡器频率#define LED RC5 //因为led灯连在了RC5引脚上void main(){ TRISC = 0x00;//设置所有的PORTC为输出 PORTC = 0xff;//将PORTC的输出都设置为1 while(1)... 阅读全文
posted @ 2012-11-27 20:35 wuqi1003 阅读(1962) 评论(0) 推荐(0) 编辑
摘要: v_ADCregs->rADCCON=((1<<14)//AD预分频使能 |(prescaler<<6)//分频因子设为49 |(1<<3)//通道为AIN1 |(0<<2)//Normal操作模式 |(0<<1)//AD转换不能从读操作开始 );上面这段程序就是典型的移位赋值寄存器的操作。下面的图是其对应的寄存器datasheet:由上可见[13:6]这8个bit用来设置分频因子的,程序中用了49<<6这一句来进行设置,而49转为二进制是110001,只有6bit,而... 阅读全文
posted @ 2012-11-13 16:17 wuqi1003 阅读(2400) 评论(0) 推荐(0) 编辑
摘要: corelibc.lib(pegwmain.obj) : warning LNK4209: debugging information corrupt; recompile module; linking object as if no debug infocorelibc.lib(crt0dat.obj) : warning LNK4209: debugging information corrupt; recompile module; linking object as if no debug infocorelibc.lib(crt0init.obj) : warning LNK420 阅读全文
posted @ 2012-10-30 20:05 wuqi1003 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 开发板:FL2440核心芯片:S3C2440(ARM9)超声波模块:HC-SR04超声波模块工作原理:共四个脚,VCC接5V,GND接地,Trig脚接芯片通过IO传出的高电平(持续时间不低于10微秒),之后Echo脚输出一段时间高电平,高电平持续时间即为超声波发出到接收到回波的间隔时间。主要是为了使用看门狗定时器来作计时器,来计算Echo脚返回的高电平持续时间,要将复位使能与中断使能关闭,然后给“狗”最大数值,持续一段时间后,用最大数值减去当前数值,就可得到消耗的数值,再乘以“狗”每次减数的时间间隔(通过设定预分频与分频因子来确定),就是消耗的时间。试验期间出现的重要错误:程序自动run后,消 阅读全文
posted @ 2012-10-30 08:57 wuqi1003 阅读(1722) 评论(2) 推荐(0) 编辑
摘要: 开发板:FL2440芯片:S3C2440功能:程序运行时点亮一个LED,然后利用PC机通过串口发送一个数,开发板读到这个数后点亮另外一个LED。最基本的串口控制。代码:Init.sAREA |DATA|,CODE,READONLY ENTRY ldr r13, =0x1000 IMPORT WuqiMain b WuqiMain ENDinclude.h 1 #define rUTRSTAT0 (*(volatile unsigned *)0x50000010) //UART 0 Tx/Rx status 2 #define rULCON0 (*(volatile unsig... 阅读全文
posted @ 2012-10-15 15:29 wuqi1003 阅读(811) 评论(0) 推荐(0) 编辑