novakon作者
13年4个月前IP:未同步
563200
1楼
stmduino代码,供参考。
该段代码实际上模仿了spi时序(具体搞法,请看max6675的pdf)。也可直接用单片机的spi功能从6675获得数据(对于arduino用户来说,这意味着需要引用一些库)。

//max6675.c
#include <stmduino.h>

void read6675()
{
  uint result=0;
  pinlow(A1);//ask for converted data
  pinlow(A2);
  for(uchar i=0;i<16;i++)
  {
    pinhigh(A2);
    
    result <<= 1; //right shift all bits
    if(pinread(A3))//if this bit is 1
    {
      result |= 0x0001;//set LSB of result to 1
    }
    else
    {
      //do nothing
    }
    pinlow(A2);
  }
  pinhigh(A1);//end
  result>>=3;//skip the useless bits
  result*=25;//output unit: 1/100 degree
  
  printf("%u",result);
  endl();
}

uint cnt=0;
void t4()
{
  cnt++;
  if(cnt==200) //every 200ms
  {
    cnt=0;
    read6675();
  }
}

void main()
{
  clock(4M);
  
  pinmode(A1,OUTPUT); //CS
  pinhigh(A1);
  pinmode(A2,OUTPUT); //sck
  pinlow(A2);
  pinmode(A3,INPUTFL); //SO
  
  attach(t4,timer4);
  timer4clock(16,249);//1ms interrupt
  
  serial(115200);
  
  interrupts();
  while(1)
  {
    sleep();
  }
}
+100
科创币
sukeytang
2013/08/24
能够说说怎样利用arduino的库来写此类芯片的驱动就更好了。
评论
文号 / 563200

万流景仰
名片发私信
学术分 16
总主题 1270 帖总回复 8407 楼拥有证书:学者 机友 笔友
注册于 2008/03/29 15:34:00最后登录 2022/01/09 14:09:34
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:0

个人简介

已走,勿送

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的