mini2440

    1. MSP430F4250定时器使用多个功能的配置问题 5/2350 微控制器 MCU 2014-06-11
      大家有做的,能否指教一下?
    2. MSP430F4250定时器使用多个功能的配置问题 5/2350 微控制器 MCU 2014-06-10
      本帖最后由 mini2440 于 2014-6-11 09:28 编辑 能否举例吗?还是不会配置,如果在使用CCR0 在CCTL2 = OUTMOD_7 在引脚上输出PWM,如果我还要使用CCR0进行比较模拟串口这个时候的设置就不清楚,请大家赐教,谢谢
    3. MSP430F4250定时器使用多个功能的配置问题 5/2350 微控制器 MCU 2014-06-10
      同时还要用定时器模拟串口功能
    4. 关于驱动2次安装问题 2/2145 微控制器 MCU 2011-11-25
      卸载重新安装吧
    5. GPS车载终端 做EMC测试问题 6/4666 嵌入式系统 2011-04-11
      您的意思是如果我附着网络成功,测试不通过说明是硬件问题? 测试GPRS的时候 只需要附着GPRS吗?还需要其它的操作吗
    6. 电子设计大赛中怎样领导团队前进? 9/3703 电子竞赛 2011-04-11
      本帖最后由 paulhyde 于 2014-9-15 09:36 编辑 各自都有擅长的东西 ,一定要从优点开始,还有就是论文一定要写好,不然东西做的在好也只拿不到一等  
    7. 关注中,期待论坛有比赛
    8. 多多参与机会总会有的,大家努力吧
    9. 中断注册函数已定义但未被使用 1/3113 嵌入式系统 2011-04-06
      这样的警告说明 你定义了但是未使用某个变量或者函数
    10. 新手问题 11/5340 微控制器 MCU 2011-04-06
      能主要修改 启动部分 包括中断向量表部分  你可以在一个IAR例程中修改
    11. 热烈庆祝Xilinx资源中心(https://www.eeworld.com.cn/Xilinx/)落户EEWORLD! 用过Xilinx的Spartan-3感觉性能不错,大学计划方面应该在加强一些。 对于市场的推广应该增加 低端开发板,做相关的设计比赛。 对于资料来说应该在增加一些应用文档
    12. 最简单的说:stm32定时器输入捕获模式 设置好了自己就可以计数有相关的计数寄存器,而后面的需要应用人员自己写一定的计数
    13. EEWORLD联系贴 95/25130 为我们提建议&公告 2011-03-18
      其实SOSO那里都应该有大家的联系方式的,如果想知道可以和管理员要一下 这样不是更好。公开难免有些漏洞
    14. 原来有换行的怎么发表后就没有了呢
    15. 1           STM32的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出) ① 浮空输入_IN_FLOATING ② 带上拉输入_IPU   ③ 带下拉输入_IPD ④ 模拟输入_AIN ⑤ 开漏输出_OUT_OD ⑥ 推挽输出_OUT_PP ⑦ 复用功能的推挽输出_AF_PP ⑧ 复用功能的开漏输出_AF_OD 1.1         I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路)。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声 控制和降低功耗的目的。高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号 。 关键是GPIO的引脚速度跟应用匹配(推荐10倍以上?)。比如: 1.1.1       对于串口,假如最大波特率只需115.2k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。 1.1.2       对于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引脚速度或许不够,这时可以选用10M的GPIO引脚速度。 1.1.3       对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了,需要选用50M的GPIO的引脚速度。 1.2         GPIO口设为输入时,输出驱动电路与端口是断开,所以输出速度配置无意义。 1.3         在复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。 1.4         所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。 1.5         GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。 2           在STM32中如何配置片内外设使用的IO端口 首先,一个外设经过 ①配置输入的时钟和 ②初始化后即被激活(开启);③如果使用该外设的输入输出管脚,则需要配置相应的GPIO端口(否则该外设对应的输入输出管脚可以做普通GPIO管脚使用);④再对外设进行详细配置。 对应到外设的输入输出功能有下述三种情况: 一、外设对应的管脚为输出:需要根据外围电路的配置选择对应的管脚为复用功能的推挽输出或复用功能的开漏输出。 二、外设对应的管脚为输入:则根据外围电路的配置可以选择浮空输入、带上拉输入或带下拉输入。 三、ADC对应的管脚:配置管脚为模拟输入。 如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。将管脚配置成复用输出功能后,如果外设没有被激活,那么它的输出将不确定。
    16. 你的项目在用uCOS么? 35/31293 实时操作系统RTOS 2011-03-02
      用了好几年了,基本上有50%的都用了 还有别的inux的
    17. uCOS-II系统应用讨论 24/11837 实时操作系统RTOS 2011-03-02
      受益了,谢谢大家
    18. 希望大家解决下我的疑惑,关于摄像头的 3/4247 嵌入式系统 2011-01-27
      文件2:v4l.h 说明:自定义的头文件 主要是根据 /usr/include/linux/videodev.h 中的一些结构体给自定义的结构体 /***************************** name :v4l.h Ubuntu10.04 2.6.32 gcc: 4.3.3 (Ubuntu 4.3.3-5ubuntu4) copyright:all is reserved **************************/ #ifndef _V4L_H_ #define _V4L_H_ #include #include //PAL CIF NTSC tuner mode #define PAL_WIDTH 768   //3种分辨率 #define PAL_HEIGHT 576 #define CIF_WIDTH 352   // #define CIF_HEIGHT 288 #define NTSC_WIDTH 80 //设置获取图像的大小 #define NTSC_HEIGHT 60 #define DEFAULT_PALETTE VIDEO_PALETTE_RGB32   //此处设置 并未使用 因为在测试时 得到的数据 是黑图 怀疑格式问题 在main.c中的 62行对这一直进行了频繁的修改 struct _v4l_device     //自定义结构体包含 中的数据结构 { int fd;//设备号 struct video_capability capability;//摄像头属性 struct video_picture picture;//图像的属性,亮度、色度、对比度、灰度、编码属性 struct video_window window;//包含capture area 的信息 struct video_channel channel[8];//采集的通道 struct video_mbuf mbuf;//利用mmap映射得侦信息 struct video_capture capture; struct video_buffer buffer; struct video_mmap mmap; unsigned char *map; int frame; int framestat[2]; }; typedef struct _v4l_device v4ldevice; //main.c中要用到的函数声明 extern int v4l_open(char *,v4ldevice *); //关键字extern 函数在别的文件中定义 extern int v4l_set_norm(v4ldevice *, int); extern int v4l_get_capability(v4ldevice *); extern int v4l_get_window(v4ldevice *); extern int v4l_set_window(v4ldevice *); extern int v4l_get_picture(v4ldevice *); extern int v4l_mmap_init(v4ldevice *); extern int v4l_grab_init(v4ldevice *,int ,int); extern int v4l_grab_start(v4ldevice *,int ); extern int v4l_grab_sync(v4ldevice *,int); extern int v4l_get_capture(v4ldevice *); extern int v4l_set_capture(v4ldevice *); extern unsigned char *v4l_get_address(v4ldevice *); extern int v4l_close(v4ldevice *); extern void set(v4ldevice *); #endif 文件3:main.c 说明 :定义了v4l.h中声明的函数 然后一个 主函数调用。 /****************************************** name :main.c Ubuntu 10.04 2.6.32- gcc: 4.3.3 (Ubuntu 4.3.3-5ubuntu4) copyright:all is reserved ************************************/ #include #include "v4l.h" #include #include #include #include #include #include #include #include #include #include #include #define norm VIDEO_MODE_NTSC #define DEFAULT_FILE_NAME "picture" #define DEFAULT_DEVICE "/dev/video0" int v4l_open(char *dev,v4ldevice *vd) { if (!dev) dev = DEFAULT_DEVICE; if((vd->fd=open(dev,O_RDWR | O_NONBLOCK,10705))capability.type); printf("Maxwidth:%d,Maxheight:%d\n",vd->capability.maxwidth ,vd->capability.maxheight); printf("Minwidth:%d,Minheight:%d\n",vd->capability.minwidth,vd->capability.minheight); printf("Channels:%d,Audios:%d\n",vd->capability.channels,vd->capability.audios);} if(v4l_get_picture(vd)picture.brightness,vd->picture.hue,vd->picture.colour); printf("Contrast:%d,Whiteness:%d(Black and white only)\n",            vd->picture.contrast,vd->picture.whiteness); printf("Capture depth:%d,Palette:%d\n",vd->picture.depth,vd->picture.palette); } //return 0;gcc版本: 4.3.3 (Ubuntu 4.3.3-5ubuntu4) printf("\n===============Set vpic.palette to VIDEO_PALETTE_YUV420P,and picture.depth to 16.========\n"); vd->picture.palette=VIDEO_PALETTE_YUV420P;    // 设置调色板 设置图像格式    对应 videodev.h 中107行 vd->picture.depth=14;            // 设置象素深度 //vd->picture.hue =     25854 ;                   // 色调 // vd->picture.colour=         25854    ;                 // //vd->picture.brightness =     22869 ;                 //亮度 // vd->picture.contrast =        22768   ;             //对比度 //   vd->picture.whiteness=      29321   ;                         //色度 if(ioctl(vd->fd, VIDIOCSPICT, &vd->picture)==-1)     // 设置图像特性 {    fprintf(stderr, "Unable to find a supported capture format.\n"); close(vd->fd);    exit(1); }else{ printf("\n==============Get struct video_picture2===============\n");//修改后获得的信息 printf("Brightness:%d,Hue:%d,Colour:%d\n",vd->picture.brightness,vd->picture.hue,vd->picture.colour); printf("Contrast:%d,Whiteness:%d(Black and white only)\n",            vd->picture.contrast,vd->picture.whiteness); printf("Capture depth:%d,Palette:%d\n",vd->picture.depth,vd->picture.palette); } return 0; } int v4l_get_capability(v4ldevice *vd) { if(ioctl(vd->fd,VIDIOCGCAP,&(vd->capability))fd,VIDIOCGPICT,&(vd->picture))capability.channels; i++) { vd->channel.norm = norm;} return 0; }*/ int v4l_grab_init(v4ldevice *vd,int width,int height) //初始化 { vd->mmap.width=width; vd->mmap.height=height; vd->mmap.format=vd->picture.palette; vd->frame=0; vd->framestat[0]=0; vd->framestat[1]=0;    return 0; } int v4l_mmap_init(v4ldevice *vd) { if(v4l_get_mbuf(vd)map=mmap(0,vd->mbuf.size,PROT_READ|PROT_WRITE,MAP_SHARED,vd->fd,0))fd,VIDIOCGMBUF,&(vd->mbuf))mbuf.size); return 0; } int v4l_grab_start(v4ldevice *vd,int frame)    //开始 { vd->mmap.frame=frame; if(ioctl(vd->fd,VIDIOCMCAPTURE,&(vd->mmap))framestat[frame]=1; return 0; } int v4l_grab_sync(v4ldevice *vd,int frame) { if(ioctl(vd->fd,VIDIOCSYNC,&frame)framestat[frame]=0; return 0; } unsigned char * v4l_get_address(v4ldevice *vd) { return (vd->map+vd->mbuf.offsets[vd->frame]); } int v4l_close(v4ldevice *vd) { close(vd->fd); return 0; } int main() { char *buffer=NULL; v4ldevice VD; v4ldevice *vd=&VD;    int frame=0; int f_d; f_d=open(DEFAULT_FILE_NAME,O_RDWR|O_CREAT,0666);//获取文件的描述符   打开piture 文件 返回其描述符 DEFAULT_FILE_NAME 在前面开始定义 if(0==v4l_open("/dev/video0",vd)) //打开设备 printf("open success!\n"); else printf("open failure\n"); // set (vd); /*    if(0==v4l_set_norm(vd,norm)) printf("set_norm success\n"); else printf("set_norm failure\n"); */ if(0==v4l_grab_init(vd,CIF_WIDTH,CIF_HEIGHT))//初始化设备,定义获取图像的大小 printf("init success!\n"); else printf("init failure\n"); if(0==v4l_mmap_init(vd))//内存映射 printf("memory map success!\n"); else printf("memory map failure\n"); if(0==v4l_grab_start(vd,frame))//开始获取图像 printf("get picture success!\n"); else printf("get picture failure\n");    v4l_grab_sync(vd,frame);//等待传完一帧 buffer=(char *)v4l_get_address(vd);//得到这一帧的地址 printf("img address %p\n",buffer); write(f_d,buffer,CIF_WIDTH*3*CIF_HEIGHT);//报存到文件中    写入piture 文件中 v4l_close(vd); return 0; } 文件4:Makefile 说明:自己写的 Makefile 同时生成X86 和ARM 下的可执行文件 交叉编译链为 arm-softfloat-linux-gnu-gcc gcc version 3.4.5 #********************************************************# #注意啊,以下这两行命令要以tab键开头,不可为空格! main   :     gcc -o arm-main -static main.c clean   : @rm -vf main* *~ *.o *.i *.s #********************************************************# 结束 :把mian.c   v4l.h Makefile 3个文件放在一个文件夹下编译即可
    19. 2010年EEWORLD年度风云人物评选揭晓 64/18193 为我们提建议&公告 2011-01-21
      一等奖挺好,祝贺了
    20. 【投票】2010年优秀版主决选!(EEWORLD社区) 38/6919 聊聊、笑笑、闹闹 2011-01-15
      嵌入式的daicheng我支持你,谢谢你的指导和热情的共享代码与资料。 投你了,名个版主辛苦了!!

最近访客

< 1/1 >

统计信息

已有2457人来访过

  • 芯积分:--
  • 好友:--
  • 主题:14
  • 回复:60

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言