微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 基于SOPC的18B20温度测量

基于SOPC的18B20温度测量

时间:10-02 整理:3721RD 点击:
基于SOPC的18B20温度测量,求大神指导,

nios ii IDE下软件中,程序不能跳出18B20复位函数,还有那个程序能不能指导一下,这个东西没做过,对niosii 的编程也不熟悉。

有些人写DS18B20的初始化函数喜欢写成初始化成功才返回,初始化失败就一直在那循环

毕业设计的时候做过

没有啊,就是让DQ写1延时,写0一些列操作,等待18B20相应啊,有程序参考一下吗?最好是nios ii IDE下的,

你可以把程序贴出来看看

//*********18B20复位函数**********//
void ow_reset(void)
{
    char presence=1;
   
    while(presence)
   {
    IOWR_ALTERA_AVALON_PIO_DATA(DQ_BASE,0x01);
    delay(7);
    IOWR_ALTERA_AVALON_PIO_DATA(DQ_BASE,0x00);
    delay(550);        //550us
    IOWR_ALTERA_AVALON_PIO_DATA(DQ_BASE,0x01);
    delay(44);         //44us
    presence=IORD_ALTERA_AVALON_PIO_DATA(DQ_BASE);      //presence=0,继续下一步
   }
   delay(110);          //延时110us
IOWR_ALTERA_AVALON_PIO_DATA(DQ_BASE,0x01);
}
复位函数,不知道这么写对不对?

应该是时序问题,初始化成功presence=0之后才会跳出while循环

围观。。

围观。。

怎么改呢?指导指导

怎么改呢?指导指导

怎么改呢?指导指导

怎么改呢,指导指导,

我有纯verilog代码。要吗

围观 18B200不错,学习一下,很好

根据DS18B20的datasheet,里面有时序图

我有vhdl的程序,有没有用sopc做的,就像单片机一样,直接把单片机用sopc builder中建立的软核控制器替换掉,这样来测温度的,

恩恩,时序看过了,没问题,对三态io口的读写怎么操作呢?

alt_u8 init_18b20()           //初始化18b20
{
        alt_u8 n=0;
        JP2_0->DIRECTION=1;JP2_0->DATA=0x01;        //初始状态高电平
        usleep(20);
        JP2_0->DIRECTION=1;JP2_0->DATA=0x00;        //拉低
        usleep(600);\
        JP2_0->DIRECTION=1;JP2_0->DATA=0x01;        //释放总线
        usleep(40);
        JP2_0->DIRECTION=0;
        n=JP2_0->DATA&0x01;
        usleep(500);
        JP2_0->DIRECTION=1;JP2_0->DATA=0x01;
        return n;
}
===============================================================
小编应该是没有给三态双向IO定义方向,以上是我写的初始化程序,可以用,但是我现在卡在了读数据的地方,小编可以交流交流吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top