📄 z1slaveio.h
字号:
/*= z1slaveio.h ================================================================
*
* Copyright (C) 2005 Nordic Semiconductor
*
* This file is distributed in the hope that it will be useful, but WITHOUT
* WARRANTY OF ANY KIND.
*
* Author(s): B鴕ge Strand
*
* Compiler: Tested with WinAVR, avr-gcc (GCC) 3.4.3
*
* Revision: 1.0
*
*==============================================================================
*/
// Only include this file once
#ifndef Z1SLAVEIO_H
#define Z1SLAVEIO_H
// Local includes
#include "mcu.h"
#include "dac.h"
#include "main.h"
#include "uartdebug.h"
// Primitive I/O operations
#define MAXPOLLITER 1000 // Flag poll cycles before timeout is declared
#define FLAGREADY 0x00 // 0x00 indicates that a flag is ready
#define Z1TIMEOUT 0x02 // 0x02 indicates something else... timeout? FIX!
#define OKAY 0 // Error/result reports that all is well
#define TIMEOUT 0xFF // Error/result reports that something timed out
char z1_singleread (char adr);
void z1_singlewrite (char adr, char data);
void z1_multiread (char startadr, char endadr);
void z1_multiwrite (char startadr, char endadr);
char z1_flagready(char flag);
void z1_setflag(char flag);
// Link and address operations
#define LINKPRESENT 0x01 // A link is there!
char z1_haslink(void);
void z1_force_relink(void);
void z1_setprivateadr(void);
void z1_setinitialadr(void);
char z1_randombyte(void);
// ARX EEPROM access
char z1_read_eeprom(char adrh, char adrl);
char z1_write_eeprom(char adrh, char adrl, char data);
// Z1 internal register names
// STATUS:
#define TXSTA 0x01
#define INTSTA 0x02
#define LNKSTA 0x03
#define LNKQ 0x04
#define LNKERR 0x05
#define RXSTAT 0x06
#define RXPIN 0x07
// LINK:
#define CH0 0x0C
#define CH1 0x0D
#define CH2 0x0E
#define CH3 0x0F
#define CH4 0x10
#define CH5 0x11
#define CH6 0x12
#define CH7 0x13
#define CH8 0x14
#define CH9 0x15
#define CH10 0x16
#define CH11 0x17
#define CH12 0x18
#define CH13 0x19
#define CH14 0x1A
#define CH15 0x1B
#define CH16 0x1C
#define CH17 0x1D
#define CH18 0x1E
#define CH19 0x1F
#define CH20 0x20
#define CH21 0x21
#define CH22 0x22
#define CH23 0x23
#define CH24 0x24
#define CH25 0x25
#define CH26 0x26
#define CH27 0x27
#define CH28 0x28
#define CH29 0x29
#define CH30 0x2A
#define CH31 0x2B
#define CH32 0x2C
#define CH33 0x2D
#define CH34 0x2E
#define CH35 0x2F
#define CH36 0x30
#define CH37 0x31
#define BCHD 0x32
#define NBCH 0x33
#define NACH 0x34
#define NLCH 0x35
#define LNKMOD 0x36
#define LNKWTH 0x37
#define LNKETH 0x38
#define ADDR_0 0x39
#define ADDR_1 0x3A
#define ADDR_2 0x3B
#define ADDR_3 0x3C
#define ADDR_4 0x3D
#define LINKCSTATE 0x3E
// RX CONFIG:
#define RXRESO 0x40
#define RXPIO 0x41
#define RXPWME 0x42
#define RXPWMD 0x43
#define I2SCNF_OUT 0x44
#define RXWAKE 0x45
#define RXSTI_0 0x46
#define RXSTI_1 0x47
#define RXWTI 0x48
#define RXPWR 0x49
#define RXMOD 0x4A
#define RXCSTATE 0x4B
#define RXLTI 0x4C
#define TXLTI 0x4D
// TX CONFIG:
#define TXRESO 0x50
#define TXFMT 0x51
#define TXLAT 0x52
#define INTCF 0x53
#define I2SCNF_IN 0x54
#define I2SRAT 0x55
#define TXPWR 0x56
#define TXSTI_0 0x57
#define TXSTI_1 0x58
#define TXWTI 0x59
#define TXMOD 0x5A
#define TXCSTATE 0x5B
// RX BUFFER
#define RXBUF_0 0x60
#define RXBUF_1 0x61
#define RXBUF_2 0x62
#define RXBUF_3 0x63
#define RXBUF_4 0x64
#define RXBUF_5 0x65
#define RXBUF_6 0x66
#define RXBUF_7 0x67
#define RXBUF_8 0x68
#define RXBUF_9 0x69
#define RXBUF_10 0x6A
#define RXBUF_11 0x6B
#define RXBUF_12 0x6C
#define RXBUF_13 0x6D
#define RXBUF_14 0x6E
#define RXBUF_15 0x6F
// RX COMMAND:
#define RXDCMD 0x70
#define RXWCNT 0x71
#define RXRCNT 0x72
#define RXEXEC_ID 0x73
#define RXEXEC 0x74
#define TXDD 0x75
#define REV 0x7D
#define TESTREG 0x7E
#define TESTCH 0x7F
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -