hisyam fs / TPA81new

Dependents:   Test_all

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TPA81new.cpp Source File

TPA81new.cpp

00001 #include "TPA81new.h"
00002 
00003 TPA81::TPA81(PinName mysda, PinName myscl, char TPA_addr): _TPA(mysda,myscl) {
00004     _delay = 51;
00005     _addr = TPA_addr;
00006 }
00007 
00008 void TPA81::setAddress(char inAddr) {
00009 _addr = inAddr;
00010 }
00011 
00012 void TPA81::changeaddress(char oldAddr, char newAddr) {
00013     _addr = oldAddr;
00014     char data[2];
00015     data[0] = 0;
00016     data[1] = 0xA0;
00017     _TPA.write(_addr,data,2,false);
00018     wait_us(100);
00019     data[1] = 0xAA;
00020     _TPA.write(_addr,data,2,false);
00021     wait_us(100);
00022     data[1] = 0xA5;
00023     _TPA.write(_addr,data,2,false);
00024     wait_us(100);
00025     data[1] = newAddr;
00026     _TPA.write(_addr,data,2,false);
00027     wait_us(100);
00028 }
00029     
00030 int TPA81::getTempAt() {
00031     _cmd[0] = 1;
00032     _cmd[1] = 1;
00033 
00034     _TPA.write(_addr, _cmd, 2);
00035     _TPA.read(_addr, _cmd, 1);
00036 
00037     return _cmd[0];
00038 }
00039 
00040 int TPA81::getTemp(short i) {
00041     _cmd[0] = i;
00042     _cmd[1] = i;
00043 
00044     _TPA.write(_addr, _cmd, 2);
00045     _TPA.read(_addr, _cmd, 1);
00046 
00047     return _cmd[0];
00048 }
00049 
00050 unsigned int TPA81::Ambient(){
00051         return getTemp(1);
00052 }
00053 
00054 void TPA81::Read()
00055 {
00056     for (short i = 2; i < 10; i++)
00057     {
00058         Data[i-2]=getTemp(i)-getTemp(1);
00059                 if(Data[i-2]<0){
00060                         Data[i-2] = 0;
00061                 }
00062     }    
00063         
00064 }
00065 
00066 unsigned char TPA81::IsAdaApi()
00067 {
00068     int i;
00069     
00070     Read();
00071     i=Data[0]+Data[1]+Data[2]+Data[3]+Data[4]+Data[5]+Data[6]+Data[7];
00072     if (i>400)
00073         return(1);
00074     else
00075         return(0);;
00076 }
00077 
00078 unsigned int TPA81::TingkatPanas()
00079 {
00080     int i;
00081     
00082     Read();
00083     i=Data[0]+Data[1]+Data[2]+Data[3]+Data[4]+Data[5]+Data[6]+Data[7];
00084     return i;
00085 }
00086 
00087 /*unsigned int TPA81::TingkatPanas()
00088 {
00089     int i;
00090         unsigned int x;
00091     
00092     Read();
00093     for(i=1;i<9;i++){
00094                 if(Data[i-1]<Data[i]){
00095                         x = Data[i];
00096                 }
00097                 else{
00098                         x = Data[i-1];
00099                 }
00100         }
00101     return x;
00102 }*/