Device Driver
2011.01.04 13:42

I2C 디바이스 드라이버 응용 / TCN75

조회 수 38120 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

예제 (TCN75)

I2C 인터페이스인 TCN75 칩의 온도를 가져오기 위한 응용이다.

...
#define I2C_ADDR_TCN75 0x4f  // 하드웨어 설계에 따라 달라진다.
...

void tcn75_init(void)
{
    int fd;

    fd = open("/dev/i2c-0", O_RDWR); // mknod /dev/i2c-0 c 89 0
    if(fd < 0) {
        fprintf(stderr, "can't open /dev/i2c-0\n");
        exit(2);
    }

    ioctl(fd, I2C_SLAVE, I2C_ADDR_TCN75);

    unsigned char cmd, read_data[2];
    int read_value;
    cmd = 0x00; // TEMP
    write(fd, &cmd, 1); // Pointer Byte
    close(fd);
}

float tcn75_get_temperature(void)
{
    int fd;

    fd = open("/dev/i2c-0", O_RDWR);
    if(fd < 0) {
        fprintf(stderr, "can't open /dev/i2c-0\n");
        exit(2);
    }

    ioctl(fd, I2C_SLAVE, I2C_ADDR_TCN75);

    unsigned char read_data[2];
    int read_value;
    float temperature;
    read(fd, read_data, 2);
    read_value = (read_data[0]<<8) | read_data[1];
    read_value >>= 7;
    if(read_value > 256) read_value = read_value - 512;
    temperature = read_value / 2.0;
    close(fd);
    return temperature;
}


int main(int argc, char** argv)
{
    tcn75_init();
    while(1) {
        printf("temp = %f\n", tcn75_get_temperature());
        sleep(1);
    }
    return 0;
}
TAG •
  • ?
    BReNTT 2013.06.05 18:51
    공유해주신 소스 덕분에 1시간 걸릴 일 5분만에 처리했습니다.
    고맙습니다~!!
  • ?
    비트겐스 2013.07.17 17:38
    댓글을 이제야 봤네요.
    아~ 다행이네요 도움이 되셨다니요..

조회 수 29264 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

Windows XP

  • nbtstat
  • arp

Fedora

  • arp
  • nbtscan

Python
2011.03.29 10:29

String 조작 예제 #1

조회 수 46280 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
def ascii_list(s):
    """return a list of ascii values of the characters in string s"""
    return [ord(c) for c in s]
 
s = 'cat'
alist = ascii_list(s)
print alist  # [99, 97, 116]
 
# manipulate the list elements
alist[0] += 1
alist[1] += 14
alist[2] -= 13
 
# convert ascii to char
clist = [chr(e) for e in alist]
# join to form a word
print "".join(clist)  # dog
TAG •

Cpp
2011.05.02 13:49

typeid()

조회 수 24093 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
#include <iostream>
#include <typeinfo.h>

class Base {
public:
   virtual void vvfunc() {}
};

class Derived : public Base {};

using namespace std;
int main()
{
   Derived* pd = new Derived;
   Base* pb = pd;
   cout << typeid( pb ).name() << endl;   //prints "class Base *"
   cout << typeid( *pb ).name() << endl;   //prints "class Derived"
   cout << typeid( pd ).name() << endl;   //prints "class Derived *"
   cout << typeid( *pd ).name() << endl;   //prints "class Derived"
   delete pd;
}

Links
2011.05.04 09:37

Regular Expression

조회 수 12514 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
  • Regular-Expressions.info: http://www.regular-expressions.info/reference.html

Board Pagination Prev 1 ... 26 27 28 29 30 31 32 33 34 35 ... 39 Next
/ 39