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

📄 keyscan.lst

📁 AVR单片机专用的操作系统AVRX
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"KeyScan.c"
   2               		.arch atmega64
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  92               	.global	Key_DOWN
  94               	Key_DOWN:
   1:KeyScan.c     **** #include "includes.h"
   2:KeyScan.c     **** unsigned char Key_DOWN(void)  
   3:KeyScan.c     **** {
  95               	16,16;pid:(6,6),32,16;priority:(0,11),48,8;;",128,0,0,0
   4:KeyScan.c     **** 	unsigned char i;
   5:KeyScan.c     **** 	DDRC=0x0F;
  99               	(6,29)=s7r_stack:(6,4),0,16;start:(6,30)=*(6,31)=f(0,15),16,16;pid:(6,6),32,16;priority:(0,11),48,8
   6:KeyScan.c     **** 	PORTC=0xFE;
 103               	(6,29)=s7r_stack:(6,4),0,16;start:(6,30)=*(6,31)=f(0,15),16,16;pid:(6,6),32,16;priority:(0,11),48,8
 107 0008 20E0      	.global	Key_DOWN
 109 000c 42E1      	Key_DOWN:
 111               	.LM0:
 112               	/* prologue: frame size=0 */
 113 000e 922F      	/* prologue end (size=0) */
 115               	.LM1:
 116               		ldi r24,lo8(15)
 117               		out 52-0x20,r24
 119               	.LM2:
   1:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /* Copyright (c) 2002, Marek Michalkiewicz
   2:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    Copyright (c) 2007 Joerg Wunsch
   3:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    All rights reserved.
   4:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
   5:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    Redistribution and use in source and binary forms, with or without
   6:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    modification, are permitted provided that the following conditions are met:
   7:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
   8:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    * Redistributions of source code must retain the above copyright
   9:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      notice, this list of conditions and the following disclaimer.
  10:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  11:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    * Redistributions in binary form must reproduce the above copyright
  12:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      notice, this list of conditions and the following disclaimer in
  13:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      the documentation and/or other materials provided with the
  14:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      distribution.
  15:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  16:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    * Neither the name of the copyright holders nor the names of
  17:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      contributors may be used to endorse or promote products derived
  18:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      from this software without specific prior written permission.
  19:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  20:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  24:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  25:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  26:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  27:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  28:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  30:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   POSSIBILITY OF SUCH DAMAGE. */
  31:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  32:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /* $Id: delay_basic.h,v 1.1.2.2 2007/05/13 21:26:06 joerg_wunsch Exp $ */
  33:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  34:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** #ifndef _UTIL_DELAY_BASIC_H_
  35:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** #define _UTIL_DELAY_BASIC_H_ 1
  36:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  37:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** #include <inttypes.h>
  38:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  39:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /** \file */
  40:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /** \defgroup util_delay_basic <util/delay_basic.h>: Basic busy-wait delay loops
  41:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     \code
  42:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     #include <util/delay_basic.h>
  43:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     \endcode
  44:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  45:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     The functions in this header file implement simple delay loops
  46:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     that perform a busy-waiting.  They are typically used to
  47:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     facilitate short delays in the program execution.  They are
  48:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     implemented as count-down loops with a well-known CPU cycle
  49:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     count per loop iteration.  As such, no other processing can
  50:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     occur simultaneously.  It should be kept in mind that the
  51:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     functions described here do not disable interrupts.
  52:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  53:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     In general, for long delays, the use of hardware timers is
  54:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     much preferrable, as they free the CPU, and allow for
  55:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     concurrent processing of other events while the timer is
  56:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     running.  However, in particular for very short delays, the
  57:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     overhead of setting up a hardware timer is too much compared
  58:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     to the overall delay time.
  59:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  60:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     Two inline functions are provided for the actual delay algorithms.
  61:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  62:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** */
  63:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  64:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** #if !defined(__DOXYGEN__)
  65:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
  66:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
  67:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** #endif
  68:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  69:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
  70:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  71:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     Delay loop using an 8-bit counter \c __count, so up to 256
  72:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     iterations are possible.  (The value 256 would have to be passed
  73:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     as 0.)  The loop executes three CPU cycles per iteration, not
  74:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     including the overhead the compiler needs to setup the counter
  75:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     register.
  76:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  77:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
  78:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     can be achieved.
  79:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** */
  80:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** void
  81:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** _delay_loop_1(uint8_t __count)
  82:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** {
  83:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 	__asm__ volatile (
 120               	M0-Key_DOWN
 121               	.LM0:
 122 0010 842F      	/* prologue: frame size=0 */
 123               	/* prologue end (size=0) */
 125 0014 01F4      	.LM1:
 126               		ldi r24,lo8(15)
 127               		out 52-0x20,r24
 129               	.LM2:
 130               		ldi r24,lo8(-2)
 131               		out 53-0x20,r24
 132               		ldi r18,lo8(0)
   7:KeyScan.c     **** 	for(i=0;i<=3;i++)
   8:KeyScan.c     **** 	{
   9:KeyScan.c     **** 	 	_delay_us(5);
  10:KeyScan.c     **** 		if(!(PINC & 0x10))
 133               	logue end (size=0) */
 135 0016 9C99      	.LM1:
 136 0018 00C0      		ldi r24,lo8(15)
  11:KeyScan.c     **** 		{
  12:KeyScan.c     **** 			return (i<<2)+1;
 137               	
 139 001a 990F      	Key_DOWN:
 141 001e 9F5F      	.LM0:
 142 0020 00C0      	/* prologue: frame size=0 */
 143               	/* prologue end (size=0) */
  13:KeyScan.c     **** 		}
  14:KeyScan.c     **** 		else if(!(PINC & 0x20))
 144               	abs	"Key_DOWN:F(0,11)",36,0,0,Key_DOWN
 145               	.global	Key_DOWN
 147 0024 00C0      	Key_DOWN:
  15:KeyScan.c     **** 		{
  16:KeyScan.c     **** 			return (i<<2)+2;
 148               	16,16;pid:(6,6),32,16;priority:(0,11),48,8;;",128,0,0,0
 152 002a 9E5F      	.global	Key_DOWN
 154               	Key_DOWN:
  17:KeyScan.c     **** 		}

⌨️ 快捷键说明

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