banner
Lifestream
  • 전체 카테고리 (104)
    • Digital Life (40)
      • Picture (20)
      • Video (20)
    • Daily Life (20)
    • Game Life (5)
    • Code Life (18)
    • Information Life (19)
profile
Home Category Guestboook Notice
Manage Write
  • 전체 카테고리 (104)
    • Digital Life (40)
      • Picture (20)
      • Video (20)
    • Daily Life (20)
    • Game Life (5)
    • Code Life (18)
    • Information Life (19)
GTK_LeonHeart
Manage Write
구독하기 RSS 어두운 모드 밝은 모드
Code Life
[Zigbee] 온도 & 습도 출력을 위한 소스의 헤더 (basedef.h) - DEFINE 값
2018. 4. 12. 22:05 · GTK_LeonHeart ·


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// basedef.h
#ifndef BASE_DEF_H
#define BASE_DEF_H
 
// MCU Clock & Baud Rate
#define CPU_CLOCK 7372800
#define BAUD_RATE 19200
#define BAUD_RATE_L (CPU_CLOCK / (16l * BAUD_RATE)) - 1
#define BAUD_RATE_H ((CPU_CLOCK / (16l * BAUD_RATE)) - 1) >> 8
 
// TWI 통신시에 Ack를 주고 받는지 여부
#define noACK 0
#define ACK 1
 
// SHT11 온도/습도 센서의 명령어
#define STATUS_REG_W 0x06               // 상태 레지스터 쓰기/설정
#define STATUS_REG_R 0x07               // 상태 레지스터 읽기
#define MEASURE_TEMP 0x03               // 온도값 읽어오기
#define MEASURE_HUMI 0x05               // 습도값 읽어오기
#define RESET 0x1e                      // 센서 리셋
 
// basedef.h
// AVR-GCC용 매크로 함수
#ifndef outb // 포트에 데이터 출력
    #define outb(addr, data) addr = (data)
#endif
#ifndef inb // 포트로부터 데이터 읽기
    #define inb(addr) (addr)
#endif
#ifndef BV // 비트 쓰기
    #define BV(bit) (1<<(bit))
#endif
#ifndef cbi // 비트 클리어
    #define cbi(reg,bit) reg &= ~(BV(bit))
#endif
#ifndef sbi // 비트 셋팅
    #define sbi(reg,bit) reg |= (BV(bit))
#endif
#ifndef bit_is_set // 셋팅된 비트값 읽어오기
    #define bit_is_set(sfr, bit) (inb(sfr) & _BV(bit))
#endif
 
// basedef.h
// TWI 포트 읽기 모드 설정 (Master <- Slave)
#define setREAD outb(DDRD, 0xFD); sbi(PORTD, 1)         // ZigbeeX 모듈용
//#define setREAD outb(DDRD, 0x00); sbi(PORTD, 1)       // 일반적인 셋팅
 
// TWI 포트 쓰기 모드 설정 (Master -> Slave)
#define setWRITE outb(DDRD, 0xFF)
 
// TWI 포트중 SCK 셋팅 High <-> Low
#define SCK(i) if (i) sbi(PORTD, 0); else cbi(PORTD, 0)
 
// TWI 포트중 SLA 셋팅 High <-> Low
#define DATA(i) if (i) sbi(PORTD, 1); else cbi(PORTD, 1)
 
// 센서 모드 설정 TEMP:온도 , HUMI:습도
enum {TEMP, HUMI};
 
#endif
Colored by Color Scripter
cs


저작자표시 (새창열림)
카테고리 다른 글
related
[Atmega] EEPROM 읽기, 쓰기
related
[Atmega] ATMEGA128 LED왕복
related
[Zigbee] ZigbeX 모듈의 ATMEGA칩을 이용한 온도 & 습도 센서값 출력 (Serial 통신)
related
[WinAPI] Socket Programming - WINSOCK 열고 닫기, SOCKET 열고 닫기
more

Links

  • faviconLifstream NAS
  • faviconThe LAST Web page
  • favicon월반장의 바구니
  • favicon박수홍2 의 고전컴 세상
  • favicon패싱님 티스토리
  • favicon혼자 끄적이는 블로그
  • favicon땀똔즈 블로그
  • favicon변덕 심한 묘한오빠
  • faviconSONYLOVE
  • favicon북쉐프 로샤씨

Notice

  • thumbnail20.01.05 블로그 스킨 업데이트
  • thumbnail18.04.18 안녕하세요

Recent Posts

+ 더 보기

Recent Comments

GTK_LeonHeart
Game, Media , Life, Infomation.
Blog by GTK_LeonHeart Designed by Marshall K

티스토리툴바