本站帐号

    1. AD15画PCB布线的问题 3/4649 PCB设计 2016-12-07
      qwqwqw2088 发表于 2016-12-6 23:28 工具测量中肯定没有角度的测量 不过试试设置极坐标,先使用极坐标进行定位,快捷键OG 看看有没有办法
      嗯嗯,我试试
    2. littleshrimp 发表于 2016-12-4 14:39 百度一下 有很多 http://m.blog.csdn.net/article/details?id=11119081
      哇塞,谢谢、
    3. littleshrimp 发表于 2016-12-3 23:17 曲线平滑算法?
      嗯,确实是做曲线平滑算法,但是不知道有什么具体的算法,或者有什么算法可以用来借鉴一下?
    4. qwerghf 发表于 2016-12-3 16:01 自己写一个画线的函数,以你采集点为坐标,加入卡尔曼滤波,可以预判
      自己写一个画线的函数?感觉工作量有点大啊。有没有什么好的算法推荐一下? 还有卡尔曼滤波,进行预判确实可以,请问一下还有其它的方法吗?
    5. 在二维平面上确定一物体的具体位置 11/4025 ST传感器与低功耗无线技术论坛 2016-11-21
      这里材质,颜色等等都不加以限制,只要有相应的解决方案就行 不过本题最大的问题是 一、干扰项,比如在移动它时,人手的遮挡等。 二、如何实现平面的定位。 谢谢大家
    6. 在二维平面上确定一物体的具体位置 11/4025 ST传感器与低功耗无线技术论坛 2016-11-21
      金属物体,白色,1-2mm的被检物体,4cm*4cm的平面,被捡物体运动,速度基本是人走路的速度。 有只能够检测出金属,而其它都检测不到的方案吗?
    7. VL53L0X 传感器 8/5133 MEMS传感器 2016-11-20
      可以实现范围内测量吗?比如0-90度测量。还是只能一个方向测量?
    8. VL53L0测距芯片试用【ST主题月】 50/33107 stm32/stm8 2016-11-20
      请问: VL53L0是激光测距的,那它是仅能实现一路检测,还是可以范围检测? 比如,我想在一个平面上的0-90度范围内检测物体的距离,它可以吗?
    9. 在二维平面上确定一物体的具体位置 11/4025 ST传感器与低功耗无线技术论坛 2016-11-20
      littleshrimp 发表于 2016-11-20 12:50 看你要达到什么样的精度 和被测物体的材质 方案有很多 比如类似电容屏的方案 绘图板的方案 ST的飞行时间传 ...
      需要达到1-2mm的精度。材质不是问题。 电容屏应该不行,因为它受手等导电体的影响比较大;绘图板方案你说的电磁屏?这个不好弄,还需要有相应大小的电磁板。 感觉第三种方案可以耶,测距,然后可以根据两个传感器得到的距离用相对位置来计算坐标。并且精度正好1-2mm。但是有一个问题,VL53L0X不是测空间相对距离吗?但是我只需要它测平面上的物体相对距离,请问怎么解决?还有其它方案吗?
    10. 在二维平面上确定一物体的具体位置 11/4025 ST传感器与低功耗无线技术论坛 2016-11-20
      nmg 发表于 2016-11-20 12:25 帮你召唤论坛大神试试 @jmsht33 @littleshrimp @lb8820265
      :pleased:谢谢
    11. 新手关于ccs编程问题 5/2560 微控制器 MCU 2016-09-10
      flashtt 发表于 2014-10-29 08:30 这是msp430f5529的用户指导书,你可以看一下,你面有详细的ccs教程
      真是好文档
    12. 上传一些自己收集MSP430资料。 2/3216 微控制器 MCU 2016-09-10
      非常棒,谢谢楼主
    13. ADC0809数字电压表显示问题 4/3954 51单片机 2016-07-23
      我把我这两天写的ADC0809程序拷给你,你看一下吧,我的原因是ADC0809芯片的时钟频率达不到,以致ADC0809不能工作,显示用的LCD1602液晶显示屏做的,不过差别不大。    #include  #include                     //宏定义,包含头文件lcd1602.h   #include   #include   sbit adress_A=P1^2;                //需要接,还有VCC和VREF+,还有adress_B和adress_C;   sbit ALE=P3^6;                   //   sbit start=P3^5;                  //   sbit clk=P1^7;                  //   sbit EOC=P3^7;                  //   sbit OE=P1^6;                          //   sbit D0=P2^0;                         //   sbit D1=P2^1;                         //   sbit D2=P2^2;                         //   sbit D3=P2^3;                         //   sbit D4=P2^4;                         //   sbit D5=P2^5;                        //   sbit D6=P2^6;                        //   sbit D7=P2^7;                        // // sbit jidianqi=P3^0;   sbit K2=P3^2;     int flag=4,i=0;   void Delay(unsigned int c);   void h(float temp);   void Delay(unsigned int c)   {           while(c--);   } void timer0init()         {       TMOD=0x01;                TH0=(65536-1)/256;           TL0=(65536-1)%256;        EA=1;          ET0=1;           TR0=1;         clk=0;         } void main() {               unsigned int temp_data=0;     float a;     int U=0;         timer0init();     LCD_init();     IT0=1;         EX0=1;         EA=1;         while(1)     {                                ALE=0;start=0;                         _nop_();_nop_();_nop_();                         adress_A=0;                         Delay(10);                         ALE=1;                         start=0; _nop_();_nop_();_nop_();                                start=1;                         _nop_();_nop_();_nop_();                         start=0;                                                   //        while(!EOC);                         P2=0xff;                         OE=1;                         Delay(13);                         temp_data=P2;                         ALE=0;                                                OE=0;                   a=(float)(temp_data*5/4095.0);                            h(a);                                                       //显示部分传值函数                    Delay(10);  //延时等待芯片反应         }   }   void h(float temp) {     unsigned char str[9];         unsigned char a[]="Recent Voltage";                unsigned char b[]="Recent Electry "; //        sprintf(str,"%.3f",temp); //        LCD_dsp_string(0,0,str);           //lcd1602第一行显示 //        LCD_dsp_string(1,0,"SUCCESSFUL");  //lcd1602第二行显示           if(flag==4)         {         sprintf(str,"%.3f",temp);             LCD_dsp_string(0,0,"guoliu baohu");                 LCD_dsp_string(4,1," ");                                 //空格消除由于档位切换,字符长度不同导致的显示问题                 LCD_dsp_string(11,1,"V");         }            if(flag==0)         {                sprintf(str,"%.3f",temp);                 LCD_dsp_string(0,0,"0V--5V Voltage");           //lcd1602第一行显示            LCD_dsp_string(11,1,"V");  //lcd1602第二行显示            LCD_dsp_string(4,1," ");             LCD_dsp_string(10,1," ");             LCD_dsp_string(12,1,"   ");           }    if(flag==1)         {             sprintf(str,"%.3f",temp);                 LCD_dsp_string(4,1,"-");             LCD_dsp_string(11,1,"V");             LCD_dsp_string(0,0,"-5V-0V Voltage");                 LCD_dsp_string(10,1," ");                 LCD_dsp_string(12,1,"   ");         }    if(flag==2)         {             temp=temp*1000/200;             sprintf(str,"%.3f",temp);             LCD_dsp_string(11,1,"mA");             LCD_dsp_string(0,0,b);                 LCD_dsp_string(4,1," ");                 LCD_dsp_string(13,1,"   ");         }       if(flag==3)         {             temp=temp*3;                 LCD_dsp_string(0,0,"9V-12V Voltage");             sprintf(str,"%.3f",temp);            LCD_dsp_string(11,1,"V");         LCD_dsp_string(4,1," ");         LCD_dsp_string(10,1," ");         LCD_dsp_string(12,1,"  ");         }                                   LCD_dsp_string(5,1,str); }   void timer0() interrupt 1 {             TH0=(65536-1)/256;                     TL0=(65536-1)%256;                   clk=~clk; } void  counter(void) interrupt 0                    //外部中断 {    EX0=0;                                                   //关闭中断,防止在执行中断过程中又进入中断         i++;    if(i==1)       flag=0;                                         //zhengchang dianya         if(i==2)             flag=1;                                         //fu dianya         if(i==3)            flag=2;                                 //dianliu          if(i==4)          {                flag=3;                                //9-12V dianya                 i=0;                 }    Delay(60);                                          //时间延迟,消除按键抖动    EX0=1;                                                  //kai zhongduan } LCD1602.c文件 //adc0809+最小系统+LCD1602液晶显示屏 #include                //宏定义,包含头文件lcd1602.h #include #define  LCDIO  P0                           //定义数据端口 sbit LCD1602_RS = P1^5;                   //数据命令选择接口 sbit LCD1602_RW = P1^3;                   //读写选择接口 sbit LCD1602_EN = P1^4;                   //使能信号接口 /** * @brief LCD1602初始化函数 * * @param 无 * @return 无 * @note */   void Delay(unsigned int c); void LCD_init(void) {         LCD_write_command(0x01);         //清屏         LCD_write_command(0x38);         //设置16*2显示,5*7点阵,8位数据接口模式         LCD_write_command(0x38);         //设置16*2显示,5*7点阵,8位数据接口模式         LCD_write_command(0x0C);         //打开LCD显示 ,不显示光标,光标不闪烁         LCD_write_command(0x06);         //设置LCD第一个显示的地址         LCD_write_command(0x01);     //清屏 } /** * @brief 写指令函数 * * @param command:写入的指令 * @return * @note */ void LCD_write_command(unsigned char command) {         LCDIO = command;                        //指令         LCD1602_RS = 0;                                //输入指令         LCD1602_RW = 0;                                //向LCD写入指令         LCD1602_EN = 1;         LCD1602_EN = 0;                                //使能信号1->0时(下降沿)执行指令         Delay(10);                                //延时 } /** * @brief 写数据函数 * * @param dat:写入的数据 * @return 无 * @note */ void LCD_write_dat(unsigned char dat) {         LCDIO = dat;                                //写入的数据         LCD1602_RS = 1;                                //输入数据         LCD1602_RW = 0;                                //向LCD写入数据         LCD1602_EN = 1;                                        LCD1602_EN = 0;                                //使能信号1->0时(下降沿)执行指令 Delay(1);                                //延时                         } /** * @brief 显示位置函数 * * @param  x:行显示地址(取值范围0-1),y:列显示地址(取值范围0-15) * @return * @note    */ void LCD_set_xy(unsigned char x,unsigned char y) {         unsigned char address;           //定义地址码         if(y==0)                                   //要显示第一行         {                 address = 0x00 + x;           //地址码+0x80         }         else                                           //要显示第二行         {                 address = 0x40 + x;           //地址码+0xC0         }         LCD_write_command(address|0x80);//写入地址码 } /** * @brief 显示一个字符函数 * * @param  x:行显示地址(取值范围0-1),y:列显示地址(取值范围0-15),dat:显示的字符 * @return * @note    */ //void LCD_dsp_char(unsigned char x,unsigned char y,unsigned char dat) //{ //        LCD_set_xy(x,y);                   //设置显示位置 //        LCD_write_dat(dat);                   //在设置的位置写入一个字符 //} /** * @brief 显示字符串函数 * * @param  X:行显示地址(取值范围0-1),Y:列显示地址(取值范围0-15),*s:要显示的字符串 * @return * @note    */ void LCD_dsp_string(unsigned char X,unsigned char Y,unsigned char *s) {         LCD_set_xy(X,Y);                  //设置显示位置         while(*s)                                  //检测字符串结束标志         {                 LCD_write_dat(*s);          //写入当前字符                 s++;                                  //指向下一个字符         } } LCD1602.h文件 #ifndef __LCD1602_H__ #define __LCD1602_H__ void LCD_init(void);//初始化函数声明 void LCD_write_command(unsigned char command);   //写入指令函数声明 void LCD_write_dat(unsigned char dat);           //写入数据函数声明 void LCD_set_xy(unsigned char x,unsigned char y);//设置显示位置函数声明 //void LCD_dsp_char(unsigned char x,unsigned char y,unsigned char dat);//显示一个字符函数声明 void LCD_dsp_string(unsigned char X,unsigned char Y,unsigned char *s);//显示字符串函数声明 #endif
    14. 频率计 3/2054 51单片机 2016-07-13
      顶一下

最近访客

< 1/1 >

统计信息

已有3人来访过

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

留言

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


现在还没有留言