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

📄 eeprom.lst

📁 一款电力行业使用的温湿度控制器源代码 湿度传感器采用HF3223 温度采用DS18B20 单片机采用mega8 编程采用winavr2007
💻 LST
📖 第 1 页 / 共 3 页
字号:
 134:d:/WinAVR/avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
 135:d:/WinAVR/avr/include/avr/eeprom.h ****                    const void *pointer_eeprom,
 136:d:/WinAVR/avr/include/avr/eeprom.h ****                    size_t size);
 137:d:/WinAVR/avr/include/avr/eeprom.h **** 
 138:d:/WinAVR/avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
 139:d:/WinAVR/avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value);
 140:d:/WinAVR/avr/include/avr/eeprom.h **** 
 141:d:/WinAVR/avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
 142:d:/WinAVR/avr/include/avr/eeprom.h **** eeprom_write_word (uint16_t *addr,uint16_t value);
 143:d:/WinAVR/avr/include/avr/eeprom.h **** 
 144:d:/WinAVR/avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
 145:d:/WinAVR/avr/include/avr/eeprom.h **** eeprom_write_block (const void *pointer_ram,
 146:d:/WinAVR/avr/include/avr/eeprom.h ****                     void *pointer_eeprom,
 147:d:/WinAVR/avr/include/avr/eeprom.h ****                     size_t size);
 148:d:/WinAVR/avr/include/avr/eeprom.h **** 
 149:d:/WinAVR/avr/include/avr/eeprom.h **** /** \name avr-libc declarations */
 150:d:/WinAVR/avr/include/avr/eeprom.h **** 
 151:d:/WinAVR/avr/include/avr/eeprom.h **** /*@{*/
 152:d:/WinAVR/avr/include/avr/eeprom.h **** 
 153:d:/WinAVR/avr/include/avr/eeprom.h **** /** \def EEMEM
 154:d:/WinAVR/avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
 155:d:/WinAVR/avr/include/avr/eeprom.h ****     Attribute expression causing a variable to be allocated within the .eeprom
 156:d:/WinAVR/avr/include/avr/eeprom.h ****      section.  */
 157:d:/WinAVR/avr/include/avr/eeprom.h **** #define EEMEM __attribute__((section(".eeprom")))
 158:d:/WinAVR/avr/include/avr/eeprom.h **** 
 159:d:/WinAVR/avr/include/avr/eeprom.h **** /** \def eeprom_is_ready
 160:d:/WinAVR/avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
 161:d:/WinAVR/avr/include/avr/eeprom.h ****     \returns 1 if EEPROM is ready for a new read/write operation, 0 if not. */
 162:d:/WinAVR/avr/include/avr/eeprom.h **** 
 163:d:/WinAVR/avr/include/avr/eeprom.h **** #if defined(__DOXYGEN__)
 164:d:/WinAVR/avr/include/avr/eeprom.h **** # define eeprom_is_ready()
 165:d:/WinAVR/avr/include/avr/eeprom.h **** #elif defined(EEWE)
 166:d:/WinAVR/avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
 167:d:/WinAVR/avr/include/avr/eeprom.h **** #elif defined(EEPE)
 168:d:/WinAVR/avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEPE)
 169:d:/WinAVR/avr/include/avr/eeprom.h **** #elif defined(DEECR) && defined(EEL)
 170:d:/WinAVR/avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, EEL)
 171:d:/WinAVR/avr/include/avr/eeprom.h **** #else
 172:d:/WinAVR/avr/include/avr/eeprom.h **** # error "No write enable bit known for this device's EEPROM."
 173:d:/WinAVR/avr/include/avr/eeprom.h **** #endif
 174:d:/WinAVR/avr/include/avr/eeprom.h **** 
 175:d:/WinAVR/avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
 176:d:/WinAVR/avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
 177:d:/WinAVR/avr/include/avr/eeprom.h **** 
 178:d:/WinAVR/avr/include/avr/eeprom.h ****     Loops until the eeprom is no longer busy.
 179:d:/WinAVR/avr/include/avr/eeprom.h **** 
 180:d:/WinAVR/avr/include/avr/eeprom.h ****     \returns Nothing. */
 181:d:/WinAVR/avr/include/avr/eeprom.h **** 
 182:d:/WinAVR/avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
 183:d:/WinAVR/avr/include/avr/eeprom.h **** 
 184:d:/WinAVR/avr/include/avr/eeprom.h **** 
 185:d:/WinAVR/avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 186:d:/WinAVR/avr/include/avr/eeprom.h ****     Read one byte from EEPROM address \c addr. */
 187:d:/WinAVR/avr/include/avr/eeprom.h **** 
 188:d:/WinAVR/avr/include/avr/eeprom.h **** uint8_t 
 189:d:/WinAVR/avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr) 
 190:d:/WinAVR/avr/include/avr/eeprom.h **** {
 191:d:/WinAVR/avr/include/avr/eeprom.h ****   uint8_t result;
 192:d:/WinAVR/avr/include/avr/eeprom.h ****   asm volatile
 165               	.LM2:
 166 0000 DC01      		movw r26,r24
 167               	/* #APP */
 168 0002 00D0      		rcall __eeprom_read_byte_1C1D1E
 169 0004 802D      		mov r24,__tmp_reg__
 170               	/* #NOAPP */
 171               	.LBE3:
 172               	.LBE2:
 174               	.Ltext2:
  47:drive/eeprom.c ****       return ( eeprom_read_byte ((  u08 *)eeprom_adress) );
  48:drive/eeprom.c **** }
 176               	.LM3:
 177 0006 9927      		clr r25
 178               	/* epilogue: frame size=0 */
 179 0008 0895      		ret
 180               	/* epilogue end (size=1) */
 181               	/* function read_byte_from_eeprom size 7 (6) */
 189               	.Lscope0:
 193               	.global	write_byte_to_eeprom
 195               	write_byte_to_eeprom:
  49:drive/eeprom.c **** /*****************************************************************************
  50:drive/eeprom.c **** *-----------------------------------------------------------------------------
  51:drive/eeprom.c **** * subroutine:       write_byte_to_eeprom(u08 eeprom_adress)
  52:drive/eeprom.c **** * function:         used by keyprocess ,compare relay
  53:drive/eeprom.c **** * globle variable:  
  54:drive/eeprom.c **** * date:             2006.09.17
  55:drive/eeprom.c **** * author:           
  56:drive/eeprom.c **** * abstract:        
  57:drive/eeprom.c **** *-----------------------------------------------------------------------------
  58:drive/eeprom.c **** ******************************************************************************/
  59:drive/eeprom.c **** BOOL write_byte_to_eeprom(uint16 eeprom_adress,u08 value)
  60:drive/eeprom.c **** {
 197               	.LM4:
 198               	/* prologue: frame size=0 */
 199               	/* prologue end (size=0) */
 200               	.LBB4:
 201               	.LBB5:
 203               	.Ltext3:
 193:d:/WinAVR/avr/include/avr/eeprom.h ****       ( XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
 194:d:/WinAVR/avr/include/avr/eeprom.h ****         "mov %1,__tmp_reg__"
 195:d:/WinAVR/avr/include/avr/eeprom.h ****        : "+x" (addr),
 196:d:/WinAVR/avr/include/avr/eeprom.h ****          "=r" (result)
 197:d:/WinAVR/avr/include/avr/eeprom.h ****        : );
 198:d:/WinAVR/avr/include/avr/eeprom.h ****   return result;
 199:d:/WinAVR/avr/include/avr/eeprom.h **** }
 200:d:/WinAVR/avr/include/avr/eeprom.h **** 
 201:d:/WinAVR/avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 202:d:/WinAVR/avr/include/avr/eeprom.h ****     Read one 16-bit word (little endian) from EEPROM address \c addr. */
 203:d:/WinAVR/avr/include/avr/eeprom.h **** uint16_t
 204:d:/WinAVR/avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr)
 205:d:/WinAVR/avr/include/avr/eeprom.h **** {
 206:d:/WinAVR/avr/include/avr/eeprom.h ****   uint16_t result;
 207:d:/WinAVR/avr/include/avr/eeprom.h **** 
 208:d:/WinAVR/avr/include/avr/eeprom.h ****   asm ( 
 209:d:/WinAVR/avr/include/avr/eeprom.h ****         XCALL " __eeprom_read_word_" _REG_LOCATION_SUFFIX CR_TAB
 210:d:/WinAVR/avr/include/avr/eeprom.h ****        : "+x" (addr),
 211:d:/WinAVR/avr/include/avr/eeprom.h ****          "=z" (result)
 212:d:/WinAVR/avr/include/avr/eeprom.h ****        : );
 213:d:/WinAVR/avr/include/avr/eeprom.h ****   return result;
 214:d:/WinAVR/avr/include/avr/eeprom.h **** }
 215:d:/WinAVR/avr/include/avr/eeprom.h **** 
 216:d:/WinAVR/avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 217:d:/WinAVR/avr/include/avr/eeprom.h ****     Read a block of \c n bytes from EEPROM address \c pointer_eeprom to
 218:d:/WinAVR/avr/include/avr/eeprom.h ****     \c pointer_ram.  For constant n <= 256 bytes a library function is used.
 219:d:/WinAVR/avr/include/avr/eeprom.h ****     For block sizes unknown at compile time or block sizes > 256 an inline
 220:d:/WinAVR/avr/include/avr/eeprom.h ****     loop is expanded. */
 221:d:/WinAVR/avr/include/avr/eeprom.h **** 
 222:d:/WinAVR/avr/include/avr/eeprom.h **** void 
 223:d:/WinAVR/avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
 224:d:/WinAVR/avr/include/avr/eeprom.h ****                    const void *pointer_eeprom,
 225:d:/WinAVR/avr/include/avr/eeprom.h ****                    size_t n)
 226:d:/WinAVR/avr/include/avr/eeprom.h **** {
 227:d:/WinAVR/avr/include/avr/eeprom.h ****   if (!__builtin_constant_p (n)
 228:d:/WinAVR/avr/include/avr/eeprom.h ****       || n > 256)
 229:d:/WinAVR/avr/include/avr/eeprom.h ****     {
 230:d:/WinAVR/avr/include/avr/eeprom.h ****       /* make sure size is a 16 bit variable.  */
 231:d:/WinAVR/avr/include/avr/eeprom.h ****       uint16_t size = n; 
 232:d:/WinAVR/avr/include/avr/eeprom.h **** 
 233:d:/WinAVR/avr/include/avr/eeprom.h ****       asm volatile ( 
 234:d:/WinAVR/avr/include/avr/eeprom.h ****             ".%=_start:" CR_TAB
 235:d:/WinAVR/avr/include/avr/eeprom.h ****             "sbiw %2,1" CR_TAB
 236:d:/WinAVR/avr/include/avr/eeprom.h ****             "brlt .%=_finished" CR_TAB
 237:d:/WinAVR/avr/include/avr/eeprom.h ****              XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
 238:d:/WinAVR/avr/include/avr/eeprom.h ****             "st z+,__tmp_reg__" CR_TAB
 239:d:/WinAVR/avr/include/avr/eeprom.h ****             "rjmp .%=_start" CR_TAB
 240:d:/WinAVR/avr/include/avr/eeprom.h ****             ".%=_finished:" 
 241:d:/WinAVR/avr/include/avr/eeprom.h ****           : "=x" (pointer_eeprom),
 242:d:/WinAVR/avr/include/avr/eeprom.h ****             "=z" (pointer_ram),
 243:d:/WinAVR/avr/include/avr/eeprom.h ****             "+w" (size)
 244:d:/WinAVR/avr/include/avr/eeprom.h ****            : "x" (pointer_eeprom), 
 245:d:/WinAVR/avr/include/avr/eeprom.h ****              "z" (pointer_ram)
 246:d:/WinAVR/avr/include/avr/eeprom.h ****            : "memory");
 247:d:/WinAVR/avr/include/avr/eeprom.h ****     }
 248:d:/WinAVR/avr/include/avr/eeprom.h ****   else
 249:d:/WinAVR/avr/include/avr/eeprom.h ****     {
 250:d:/WinAVR/avr/include/avr/eeprom.h ****       if (n != 0)
 251:d:/WinAVR/avr/include/avr/eeprom.h ****         {
 252:d:/WinAVR/avr/include/avr/eeprom.h ****           if (n == 256)
 253:d:/WinAVR/avr/include/avr/eeprom.h ****             {
 254:d:/WinAVR/avr/include/avr/eeprom.h ****               asm volatile (
 255:d:/WinAVR/avr/include/avr/eeprom.h ****                   XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX 
 256:d:/WinAVR/avr/include/avr/eeprom.h ****                 : "+x" (pointer_eeprom),
 257:d:/WinAVR/avr/include/avr/eeprom.h ****                   "=z" (pointer_ram)
 258:d:/WinAVR/avr/include/avr/eeprom.h ****                 : "z"  (pointer_ram)
 259:d:/WinAVR/avr/include/avr/eeprom.h ****                 : "memory");
 260:d:/WinAVR/avr/include/avr/eeprom.h ****             }
 261:d:/WinAVR/avr/include/avr/eeprom.h ****           else
 262:d:/WinAVR/avr/include/avr/eeprom.h ****             {
 263:d:/WinAVR/avr/include/avr/eeprom.h ****               /* Needed in order to truncate to 8 bit.  */
 264:d:/WinAVR/avr/include/avr/eeprom.h ****               uint8_t len;
 265:d:/WinAVR/avr/include/avr/eeprom.h ****               len = (uint8_t) n; 
 266:d:/WinAVR/avr/include/avr/eeprom.h **** 
 267:d:/WinAVR/avr/include/avr/eeprom.h ****               asm volatile (
 268:d:/WinAVR/avr/include/avr/eeprom.h ****                   "mov __zero_reg__,%2"      CR_TAB
 269:d:/WinAVR/avr/include/avr/eeprom.h ****                    XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX 
 270:d:/WinAVR/avr/include/avr/eeprom.h ****                 : "+x" (pointer_eeprom),
 271:d:/WinAVR/avr/include/avr/eeprom.h ****                   "=z" (pointer_ram)
 272:d:/WinAVR/avr/include/avr/eeprom.h ****                 : "r"  (len),
 273:d:/WinAVR/avr/include/avr/eeprom.h ****                   "z"  (pointer_ram)
 274:d:/WinAVR/avr/include/avr/eeprom.h ****                 : "memory");
 275:d:/WinAVR/avr/include/avr/eeprom.h ****             }
 276:d:/WinAVR/avr/include/avr/eeprom.h ****         }
 277:d:/WinAVR/avr/include/avr/eeprom.h ****     }
 278:d:/WinAVR/avr/include/avr/eeprom.h **** }
 279:d:/WinAVR/avr/include/avr/eeprom.h **** 
 280:d:/WinAVR/avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 281:d:/WinAVR/avr/include/avr/eeprom.h ****     Write a byte \c value to EEPROM address \c addr. */
 282:d:/WinAVR/avr/include/avr/eeprom.h **** 
 283:d:/WinAVR/avr/include/avr/eeprom.h **** void 
 284:d:/WinAVR/avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value)
 285:d:/WinAVR/avr/include/avr/eeprom.h **** {
 286:d:/WinAVR/avr/include/avr/eeprom.h ****   asm volatile (
 205               	.LM5:
 206 000a DC01      		movw r26,r24
 207               	/* #APP */
 208 000c 062E      		mov __tmp_reg__,r22
 209 000e 00D0      		rcall __eeprom_write_byte_1C1D1E
 210               	/* #NOAPP */
 211               	.LBE5:
 212               	.LBE4:
 214               	.Ltext4:
  61:drive/eeprom.c ****     eeprom_write_byte ((u08 *)(eeprom_adress), (u08)(value));
  62:drive/eeprom.c **** 
  63:drive/eeprom.c ****     return OK;
  64:drive/eeprom.c **** }
 216               	.LM6:
 217 0010 81E0      		ldi r24,lo8(1)
 218 0012 90E0      		ldi r25,hi8(1)
 219               	/* epilogue: frame size=0 */
 220 0014 0895      		ret
 221               	/* epilogue end (size=1) */
 222               	/* function write_byte_to_eeprom size 8 (7) */
 227               	.Lscope1:
 229               	.global	SynRamFromE2prom
 231               	SynRamFromE2prom:
  65:drive/eeprom.c **** /*****************************************************************************

⌨️ 快捷键说明

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