OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5203|回复: 6

解答一个示波器波形显示问题

[复制链接]

29

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2013-5-4
在线时间
0 小时
发表于 2013-9-16 10:12:36 | 显示全部楼层 |阅读模式
原子哥,你帮我看看这个程序吧,我怎么也改不出来程序了,还是主程序中这句话不太明白iTemp =150 + (int16_t)((1862-Buf)/50);  原来的平面是320*240的分辨率 现在是800*480的

波形显示1 .zip

7.44 MB, 下载次数: 2124

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-16 10:33:24 | 显示全部楼层
这问题我不是在另外一个帖子回答过你么?

这个代码要根据硬件去分析的,你自己有硬件,有代码,用仿真器跟踪下,就知道了。
另外,你做示波器,ADC的电压范围和外部输入电压的关系,肯定有个关系式吧?是多少?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

29

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2013-5-4
在线时间
0 小时
 楼主| 发表于 2013-9-16 12:50:52 | 显示全部楼层
我直接用的IO接口接信号发生器输入的,没有用外部硬件的
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-16 16:13:29 | 显示全部楼层
信号发生器的信号,有正有负,你这代码,能显示么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

29

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2013-5-4
在线时间
0 小时
 楼主| 发表于 2013-9-16 16:27:19 | 显示全部楼层
我把信号发生器的值偏移了一下,显示没有问题,7寸屏上显示的只不过是2.8寸屏的范围,我想把范围扩大,扩大在7寸上显示,我把代码改为下边的了,屏幕不亮
int main(void)
 {
u8 m=0;
u16 Buf[800];       /*ADC数据缓冲区*/
int16_t xBuf[800]; /*x坐标*/
int16_t yBuf[480]; /*y坐标*/
int16_t i;         /* 有符号数 */
    int16_t*px;
int16_t*py;
int16_t iTemp;
    px=xBuf;
    py=yBuf;
SystemInit();
uart_init(9600);
delay_init(72);      //延时初始化
NVIC_Configuration();
  LED_Init();
Adc_Init();
LCD_Init();
POINT_COLOR=RED;
    while(1)
   {
      for(m=0;m<800;m++)
      {
     Buf[m]=Get_Adc(ADC_CH0);
  }
     for (i = 0; i <800; i++)
  {
px = i;
iTemp =230 + (int16_t)((1862-Buf)/50);  //这一句话不知道为什么这样写啊

if (iTemp > 480)
{
iTemp = 480;
}
else if (iTemp < 20)
{
iTemp = 20;
}
py = iTemp;
  }

    /* 清除波形 */
    LCD_Clear(GREEN);
/*  显示网格 */
//    _Display_Grid(RED);
/* 显示更新的波形 */
     _LCD_DrawPoints(xBuf,yBuf ,800,BLUE);
delay_ms(1000);
LED1=!LED1;
     }
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-16 21:15:15 | 显示全部楼层
局部变量这么大...
直接死机了。
xBuf,Buf,这些这么大的数组,放到外面去。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

29

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2013-5-4
在线时间
0 小时
 楼主| 发表于 2013-9-17 09:21:18 | 显示全部楼层
原子哥,我对你简直是五体投地啊,你是我心中的大神啊,按你说的竟然成功了,我怎么也想不到啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-13 01:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表