⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iom48v060215.h

📁 我的HBS通讯程序范例
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __iom48v_h
#define __iom48v_h

/* ATmega48 header file for
 * ImageCraft ICCAVR compiler
 */

/* i/o register addresses
 * >= 0x60 are memory mapped only
 */

/* sorted by function rather than by address
 */

/* last changed 2004/01/09
 */

/* Port D */
#define PIND	(*(volatile unsigned char *)0x29)
#define DDRD	(*(volatile unsigned char *)0x2A)
#define PORTD	(*(volatile unsigned char *)0x2B)

/* Port C */
#define PINC	(*(volatile unsigned char *)0x26)
#define DDRC	(*(volatile unsigned char *)0x27)
#define PORTC	(*(volatile unsigned char *)0x28)

/* Port B */
#define PINB	(*(volatile unsigned char *)0x23)
#define DDRB	(*(volatile unsigned char *)0x24)
#define PORTB	(*(volatile unsigned char *)0x25)

/* External Interrupts */
#define EIFR	(*(volatile unsigned char *)0x3C)
#define  INTF1    1
#define  INTF0    0
#define EIMSK	(*(volatile unsigned char *)0x3D)
#define  INT1     1
#define  INT0     0

/* GPIO */
#define GPIOR2	(*(volatile unsigned char *)0x4B)
#define GPIOR1	(*(volatile unsigned char *)0x4A)
#define GPIOR0	(*(volatile unsigned char *)0x3E)


/* ADC */
#define ADC 	(*(volatile unsigned int *)0x78) /* m/m */
#define ADCL	(*(volatile unsigned char *)0x78) /* m/m */
#define ADCH	(*(volatile unsigned char *)0x79) /* m/m */
#define ADCSRB	(*(volatile unsigned char *)0x7B) /* m/m */
#define  ACME     6
#define  ADTS2    2
#define  ADTS1    1
#define  ADTS0    0
#define ADCSRA	(*(volatile unsigned char *)0x7A) /* m/m */
#define  ADEN     7
#define  ADSC     6
#define  ADRF     5
#define  ADATE    5
#define  ADIF     4
#define  ADIE     3
#define  ADPS2    2
#define  ADPS1    1
#define  ADPS0    0
#define ADMUX	(*(volatile unsigned char *)0x7C) /* m/m */
#define  REFS1    7
#define  REFS0    6
#define  ADLAR    5
#define  MUX3     3
#define  MUX2     2
#define  MUX1     1
#define  MUX0     0

/* Analog Comparator Control and Status Register */
#define ACSR	(*(volatile unsigned char *)0x50)
#define  ACD      7
#define  ACBG     6
#define  ACO      5
#define  ACI      4
#define  ACIE     3
#define  ACIC     2
#define  ACIS1    1
#define  ACIS0    0


/* USART0 */
#define UBRR0H	(*(volatile unsigned char *)0xC5) /* m/m */
#define UBRR0L	(*(volatile unsigned char *)0xC4) /* m/m */
#define UBRR0	(*(volatile unsigned int *)0xC4) /* m/m */
#define UCSR0C	(*(volatile unsigned char *)0xC2) /* m/m */
#define  UMSEL01  7
#define  UMSEL00  6
#define  UPM01    5
#define  UPM00    4
#define  USBS0    3
#define  UCSZ01   2
#define  UDORD0   2
#define  UCSZ00   1
#define  UCPHA0   1
#define  UCPOL0   0
#define UCSR0B	(*(volatile unsigned char *)0xC1) /* m/m */
#define  RXCIE0   7
#define  TXCIE0   6
#define  UDRIE0   5
#define  RXEN0    4
#define  TXEN0    3
#define  UCSZ02   2
#define  RXB80    1
#define  TXB80    0
#define UCSR0A	(*(volatile unsigned char *)0xC0) /* m/m */
#define  RXC0     7
#define  TXC0     6
#define  UDRE0    5
#define  FE0      4
#define  DOR0     3
#define  UPE0     2
#define  U2X0     1
#define  MPCM0    0
#define UDR0	(*(volatile unsigned char *)0xC6) /* m/m */


/* 2-wire SI */
#define TWBR	(*(volatile unsigned char *)0xB8) /* m/m */
#define TWSR	(*(volatile unsigned char *)0xB9) /* m/m */
#define  TWS7     7
#define  TWS6     6
#define  TWS5     5
#define  TWS4     4
#define  TWS3     3
#define  TWPS1    1
#define  TWPS0    0
#define TWAR	(*(volatile unsigned char *)0xBA) /* m/m */
#define  TWGCE    0
#define TWDR	(*(volatile unsigned char *)0xBB) /* m/m */
#define TWCR	(*(volatile unsigned char *)0xBC) /* m/m */
#define  TWINT    7
#define  TWEA     6
#define  TWSTA    5
#define  TWSTO    4
#define  TWWC     3
#define  TWEN     2
#define  TWIE     0
#define TWAMR	(*(volatile unsigned char *)0xBD) /* m/m */
#define  TWAM6    7
#define  TWAM5    6
#define  TWAM4    5
#define  TWAM3    4
#define  TWAM2    3
#define  TWAM1    2
#define  TWAM0    1


/* SPI */
#define SPCR	(*(volatile unsigned char *)0x4C)
#define  SPIE     7
#define  SPE      6
#define  DORD     5
#define  MSTR     4
#define  CPOL     3
#define  CPHA     2
#define  SPR1     1
#define  SPR0     0
#define SPSR	(*(volatile unsigned char *)0x4D)
#define  SPIF     7
#define  WCOL     6
#define  SPI2X    0
#define SPDR	(*(volatile unsigned char *)0x4E)


/* EEPROM */
#define EECR	(*(volatile unsigned char *)0x3F)
#define  EEPM1    5
#define  EEPM0    4
#define  EERIE    3
#define  EEMWE    2
#define  EEMPE    2
#define  EEWE     1
#define  EEPE     1
#define  EERE     0
#define EEDR	(*(volatile unsigned char *)0x40)
#define EEAR	(*(volatile unsigned int *)0x41)
#define EEARL	(*(volatile unsigned char *)0x41)
#define EEARH	(*(volatile unsigned char *)0x42)
/* high byte unused with m48, must be written 0 */


/* MONDR */
#define MONDR	(*(volatile unsigned char *)0x51)

/* MCU */
#define MCUSR	(*(volatile unsigned char *)0x54)
#define  WDRF     3
#define  BORF     2
#define  EXTRF    1
#define  PORF     0
#define MCUCR	(*(volatile unsigned char *)0x55)
#define  PUD      4
/* not on m48 */
/* #define  IVSEL    1 */
/* #define  IVCE     0 */

/* SPM Control and Status Register */
#define SPMCSR	(*(volatile unsigned char *)0x57)
#define  SPMIE    7
#define  RWWSB    6
#define  RWWSRE   4
#define  BLBSET   3
#define  PGWRT    2
#define  PGERS    1
#define  SPMEN    0
#define  SELFPRGEN 0

/* SMCR */
#define SMCR	(*(volatile unsigned char *)0x53)
#define  SM2      3
#define  SM1      2
#define  SM0      1
#define  SE       0

/* Stack Pointer */
#define SP  	(*(volatile unsigned int *)0x5D)
#define SPL 	(*(volatile unsigned char *)0x5D)
#define SPH 	(*(volatile unsigned char *)0x5E)

/* Status REGister */
#define SREG	(*(volatile unsigned char *)0x5F)

/* Watchdog Timer Control Register */
#define WDTCSR	(*(volatile unsigned char *)0x60) /* m/m */
#define  WDIF     7
#define  WDIE     6
#define  WDP3     5
#define  WDCE     4
#define  WDE      3
#define  WDP2     2
#define  WDP1     1
#define  WDP0     0

/* CLKPR */
#define CLKPR	(*(volatile unsigned char *)0x61) /* m/m */
#define  CLKPCE   7
#define  CLKPS3   3
#define  CLKPS2   2
#define  CLKPS1   1
#define  CLKPS0   0

/* PRR */
#define PRR       (*(volatile unsigned char *)0x64) /* m/m */
#define  PRTWI    7
#define  PRTIM2   6
#define  PRTIM1   3
#define  PRTIM0   5
#define  PRSPI    2
#define  PRUSART0 1
#define  PRADC    0

/* OSCCAL */
#define OSCCAL    (*(volatile unsigned char *)0x66) /* m/m */


/* PCIFR */
#define PCIFR	(*(volatile unsigned char *)0x3B)
#define  PCIF2    2
#define  PCIF1    1
#define  PCIF0    0

/* PCICR */
#define PCICR	(*(volatile unsigned char *)0x68) /* m/m */
#define  PCIE2    2
#define  PCIE1    1
#define  PCIE0    0

/* PCMSK registers */
#define PCMSK2	(*(volatile unsigned char *)0x6D) /* m/m */
#define  PCINT23  7
#define  PCINT22  6
#define  PCINT21  5
#define  PCINT20  4
#define  PCINT19  3
#define  PCINT18  2
#define  PCINT17  1
#define  PCINT16  0
#define PCMSK1	(*(volatile unsigned char *)0x6C) /* m/m */
#define  PCINT14  6
#define  PCINT13  5
#define  PCINT12  4
#define  PCINT11  3
#define  PCINT10  2
#define  PCINT9   1
#define  PCINT8   0
#define PCMSK0	(*(volatile unsigned char *)0x6B) /* m/m */
#define  PCINT7   7
#define  PCINT6   6
#define  PCINT5   5
#define  PCINT4   4
#define  PCINT3   3
#define  PCINT2   2
#define  PCINT1   1
#define  PCINT0   0

/* EICRA */
#define EICRA	(*(volatile unsigned char *)0x69) /* m/m */
#define  ISC11    3
#define  ISC10    2
#define  ISC01    1
#define  ISC00    0


/* Timer/Counter 0 */
#define OCR0B	(*(volatile unsigned char *)0x48)
#define OCR0A	(*(volatile unsigned char *)0x47)
#define TCNT0	(*(volatile unsigned char *)0x46)
#define TCCR0B	(*(volatile unsigned char *)0x45)
#define  FOC0A    7

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -