欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 這是我測試AMG8833性能時寫的一個測試程序 [打印本頁]

作者: Hachi56    時間: 2018-3-15 15:03
標題: 這是我測試AMG8833性能時寫的一個測試程序
  1. #include "bsp_amg88xx.h"
  2. #include "bsp_iic.h"
  3. u8 xx;

  4. void amg88xx_init(void)
  5. {
  6.         i2c_init();
  7.         amg88xx_write(AMG88xx_PCTL, AMG88xx_NORMAL_MODE);
  8.         amg88xx_write(AMG88xx_RST, AMG88xx_INITIAL_RESET);
  9.         amg88xx_write(AMG88xx_FPSC, AMG88xx_FPS_10);
  10. }

  11. uint8_t amg88xx_write(uint8_t reg,uint8_t data)
  12. {
  13.     i2c_Start();
  14.     i2c_SendByte((AMG88xx_ADDRESS<<1)|0); //發(fā)送器件地址+寫命令
  15.     if(i2c_WaitAck())          //等待應(yīng)答
  16.     {
  17.         i2c_Stop();
  18.         return 1;
  19.     }
  20.     i2c_SendByte(reg);         //寫寄存器地址
  21.     i2c_WaitAck();             //等待應(yīng)答
  22.     i2c_SendByte(data);        //發(fā)送數(shù)據(jù)
  23.     if(i2c_WaitAck())          //等待ACK
  24.     {
  25.         i2c_Stop();
  26.         return 1;
  27.     }
  28.     i2c_Stop();
  29.     return 0;
  30. }

  31. uint8_t amg88xx_read_len(uint8_t reg,uint8_t len,uint8_t *buf)
  32. {
  33.     i2c_Start();
  34.     i2c_SendByte((AMG88xx_ADDRESS<<1)|0); //發(fā)送器件地址+寫命令
  35.     if(i2c_WaitAck())          //等待應(yīng)答
  36.     {
  37.         i2c_Stop();
  38.         return 1;
  39.     }
  40.     i2c_SendByte(reg);         //寫寄存器地址
  41.     i2c_WaitAck();             //等待應(yīng)答
  42.         i2c_Start();               
  43.     i2c_SendByte((AMG88xx_ADDRESS<<1)|1); //發(fā)送器件地址+讀命令
  44.     i2c_WaitAck();             //等待應(yīng)答
  45.     while(len)
  46.     {
  47.         if(len==1)
  48.                 {
  49.                         *buf=i2c_ReadByte();//讀數(shù)據(jù),發(fā)送nACK
  50.                         i2c_NAck();
  51.                 }
  52.                 else
  53.                 {
  54.                         *buf=i2c_ReadByte();                //讀數(shù)據(jù),發(fā)送ACK  
  55.                         i2c_Ack();
  56.                 }
  57.                 len--;
  58.                 buf++;  
  59.     }
  60.     i2c_Stop();                 //產(chǎn)生一個停止條件
  61.     return 0;      
  62. }

  63. float AMG88XX_signedMag12ToFloat(uint16_t val)
  64. {
  65.         //take first 11 bits as absolute val
  66.         uint16_t absVal = (val & 0x7FF);
  67.         
  68.         return (val & 0x8000) ? 0 - (float)absVal : (float)absVal ;
  69. }

  70. float amg88xx_readThermistor()
  71. {
  72.         uint8_t raw[2];
  73.         uint16_t recast;
  74.         
  75.         amg88xx_read_len(AMG88xx_TTHL, 2, raw);
  76.         recast = ((uint16_t)raw[1] << 8) | ((uint16_t)raw[0]);
  77.         return AMG88XX_signedMag12ToFloat(recast) * AMG88xx_THERMISTOR_CONVERSION;
  78. }

  79. void amg88xx_readPixels(float *buf, uint8_t size)
  80. {
  81.         uint16_t recast;
  82.         float converted;
  83.         uint8_t rawArray[128];
  84.         
  85.         amg88xx_read_len(AMG88xx_PIXEL_OFFSET, 128, rawArray);
  86.         
  87.         for(int i=0; i<size; i++)
  88.         {
  89.                 uint8_t pos = i << 1;
  90.                 recast = ((uint16_t)rawArray[pos + 1] << 8) | ((uint16_t)rawArray[pos]);        
  91.                
  92.                 converted = AMG88XX_signedMag12ToFloat(recast) * AMG88xx_PIXEL_TEMP_CONVERSION;
  93.                 buf[i] = converted;
  94.         }
  95. }

復(fù)制代碼


AMG8833.7z

288.92 KB, 下載次數(shù): 187, 下載積分: 黑幣 -5

AMG8833測試程序


作者: 興趣使然    時間: 2018-3-27 15:10
這是那個熱像儀的嗎
作者: xiaee    時間: 2018-6-26 16:25
堅持每天簽到。不知道哦這個能不能探測遠方大面積的高溫熱點。
作者: 邦邦    時間: 2018-7-17 17:27
樓主可以用么
作者: huyanglei.ok    時間: 2018-7-27 14:38
學(xué)習了,正要做這個
作者: plj213    時間: 2018-9-8 19:03
感謝分享。。。

作者: zwjiang    時間: 2018-10-17 14:15
多謝樓主分享
作者: 周方均    時間: 2018-12-5 13:53
為什么主函數(shù)調(diào)用之后,屏幕是藍屏呢

作者: zeeee92    時間: 2018-12-25 01:26
很有用,學(xué)習學(xué)習
作者: dahuzhi_cn    時間: 2019-3-10 02:05
正是要找的
作者: 2728194262    時間: 2019-3-30 19:44
樓主  你amg8833地址咋算的啊
作者: lovernw    時間: 2019-4-6 12:16
66666向大佬學(xué)習
作者: lovernw    時間: 2019-4-6 12:17
大佬,寄存器配置的那個數(shù)據(jù)手冊可以分享一下么?
作者: 無敵的UUZ大人    時間: 2019-10-25 15:52
nb,6666666(雖然我還沒下載,但是喊666就對了)
作者: 無敵的UUZ大人    時間: 2019-10-30 15:37
樓主我想請問一下,為什么在有關(guān)AMG88XX的地方一條注釋都看不到???
作者: 無敵的UUZ大人    時間: 2019-10-30 17:45
樓主你好,amg88xx_write這個函數(shù)我有問題想問一下,這個函數(shù)的作用是發(fā)送數(shù)據(jù)到AMG8833中,由于需要Slave Address和內(nèi)部寄存器地址,所以IIC通信采用的是復(fù)合格式,你的程序里面并沒有發(fā)送重復(fù)起始信號,主機是怎么把數(shù)據(jù)發(fā)送到AMG8833里面的?能給AMG8833寫命令嗎?
我在amg88xx_read_len這個函數(shù)里面發(fā)現(xiàn)了重復(fù)發(fā)送起始信號的代碼。
所以說樓上那位沒有做出來是因為單片機不能將數(shù)據(jù)寫入到與AMG8833中,初始化失敗,所以才無法讀取數(shù)據(jù)的嗎?
作者: PADFE    時間: 2019-12-3 18:18
感激不盡,最需要這個資料的時候
作者: 18077215749    時間: 2020-2-12 22:28
感謝分享
作者: onono    時間: 2020-2-24 17:14
普通的紅外測溫探頭最近都買不到了,只能買個AM8833試試了。感謝分享。
作者: 梧桐島島主    時間: 2020-4-22 10:20
感謝分享,學(xué)習了
作者: SRTAN    時間: 2020-5-11 18:35
大佬請問一下這個傳感器的波段是多少啊

作者: HJWei    時間: 2020-5-22 14:25
正好學(xué)習下
作者: abcd20084444    時間: 2020-6-27 18:00
下載看看,學(xué)習下
作者: FFF阿貍    時間: 2021-1-21 15:56
樓主,請問我只能讀一個溫度寄存器的值,怎么解決,除了0x80地址的溫度能讀取之外,其它的都讀取不了





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1