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

📄 pjhost.lst

📁 AVR megal128下的ucos_ii
💻 LST
📖 第 1 页 / 共 5 页
字号:
__text_start:
__start:
    0245 EFCF      LDI	R28,0xFF
    0246 E1D0      LDI	R29,0x10
    0247 BFCD      OUT	0x3D,R28
    0248 BFDE      OUT	0x3E,R29
    0249 51C0      SUBI	R28,0x10
    024A 40D0      SBCI	R29,0
    024B EA0A      LDI	R16,0xAA
    024C 8308      STD	Y+0,R16
    024D 2400      CLR	R0
    024E E0E3      LDI	R30,3
    024F E0F1      LDI	R31,1
    0250 E019      LDI	R17,0x9
    0251 3DE6      CPI	R30,0xD6
    0252 07F1      CPC	R31,R17
    0253 F011      BEQ	0x0256
    0254 9201      ST	R0,Z+
    0255 CFFB      RJMP	0x0251
    0256 8300      STD	Z+0,R16
    0257 E8E7      LDI	R30,0x87
    0258 E0F4      LDI	R31,4
    0259 E0A0      LDI	R26,0
    025A E0B1      LDI	R27,1
    025B E014      LDI	R17,4
    025C 38EA      CPI	R30,0x8A
    025D 07F1      CPC	R31,R17
    025E F021      BEQ	0x0263
    025F 95C8      LPM
    0260 9631      ADIW	R30,1
    0261 920D      ST	R0,X+
    0262 CFF9      RJMP	0x025C
    0263 940E0271  CALL	_main
_exit:
    0265 CFFF      RJMP	_exit
FILE: D:\编写软件小系统\纯ucos\source\app.c
(0001) /*******************************************************************************
(0002) *************************** * Copyright       : COPYRIGHT(C) 1997-2005
(0003) 
(0004) 
(0005) * Project Name    :    UCOS2纯系统
(0006) * File name       :
(0007) * Crystal         :    16MHZ
(0008) * PCB P/N         :
(0009) * Comments        :
(0010) * SoftWareP/N     :
(0011) * ----------< History >---------------------------------------------------------
(0012) 
(0013) * File Version    :  1.0
(0014) * Author          :  jjx
(0015) * E-Mail          :  
(0016) * Date            :  2008 10 08
(0017) * Comments        :  
(0018) *******************************************************************************/
(0019) 
(0020) #include  "includes.h"
(0021) #include  "Publics.H"
(0022) 
(0023) //在os_cfg.h中作修改
(0024) #define  OS_TASK_START_STK_SIZE        OS_TASK_STK_SIZE
(0025) #define  OS_TASK_START_HARD_STK_SIZE   OS_TASK_HARD_STK_SIZE
(0026) 
(0027) OS_STK  AppTaskStartStk[OS_TASK_START_STK_SIZE];
(0028) 
(0029) 
(0030) /*
(0031) **************************************************************************************************************
(0032) *                                           FUNCTION PROTOTYPES
(0033) **************************************************************************************************************
(0034) */
(0035) 
(0036) 
(0037) static  void  AppTaskStart (void *p_arg);
(0038) static  void  AppTaskCreate(void);
(0039) static  void  AppIOInit(void);
(0040) 
(0041) void watchdog_init(void);
(0042) 
(0043) 
(0044) 
(0045) void  BeeIO(void)
(0046) {
(0047)  PORTB&=~(1<<PB5);
_BeeIO:
    0266 98C5      CBI	0x18,5
(0048)  //PORTB|=1<<PB5;
(0049)  DDRB|=1<<PB5;
    0267 9ABD      SBI	0x17,5
    0268 9508      RET
(0050)  }
(0051)  
(0052)  void timer1_init(void)               //接15脚,OC1A,为定时器T/C1
(0053) {   
(0054)     TCCR1B=0x00;                     //关闭
_timer1_init:
    0269 2422      CLR	R2
    026A BC2E      OUT	0x2E,R2
(0055) 	//TCCR3B = 0x00; //stop
(0056) 	OCR1AH = 0x00;                   //16位的比较PWM高位	
    026B BC2B      OUT	0x2B,R2
(0057) 	//OCR3AH = 0x00;
(0058) 	//OCR3AL = 0xe6;  //2 k
(0059) 	//OCR3AL = 0x99;  //3 k
(0060) 	//OCR3AL = 0x73;  //4 k
(0061) 	//OCR3AL = 0x5c;  //5 k
(0062) 	//OCR3AL = 0x4c;  //6 k
(0063) 	//OCR1AL = 0x41;
(0064) 	//OCR1AL = 0x89;
(0065) 	OCR1AL = 0xe6;
    026C EE86      LDI	R24,0xE6
    026D BD8A      OUT	0x2A,R24
(0066) 	//OCR1AL = 0x73;  //7 k形        //16位的比较PWM低位
(0067) 	//OCR3AL = 0x39;  //8 k
(0068) 	//OCR3AL = 0x33;  //9 k
(0069) 	//OCR3AL = 0x2e;  //10 k	
(0070) 	TCCR1A=0x40;                     //CTC模式
    026E E480      LDI	R24,0x40
    026F BD8F      OUT	0x2F,R24
    0270 9508      RET
_main:
  temp                 --> Y+0
  ko                   --> R20
  it                   --> R20
    0271 9721      SBIW	R28,1
(0071) 	}
(0072) 	
(0073) /*
(0074) **************************************************************************************************************
(0075) *                                                MAIN
(0076) *
(0077) * Note(s): 1) You SHOULD use OS_TASK_STK_SIZE (see OS_CFG.H) when setting OSTaskStkSize prior to calling
(0078) *             OSInit() because OS_TASK_IDLE_STK_SIZE and OS_TASK_STAT_STK_SIZE are set to this value in
(0079) *             OS_CFG.H.
(0080) **************************************************************************************************************
(0081) */
(0082) void  main (void)
(0083) {
(0084) 	INT8U it =0;
    0272 2744      CLR	R20
(0085) 	INT8U ko=0;
(0086) 
(0087) 	INT8U  temp;                                                                                // IMPORTANT: MUST be setup before calling 'OSInit()'
(0088) 	OSTaskStkSize     = OS_TASK_STK_SIZE;       // Setup the default stack size
    0273 E080      LDI	R24,0
    0274 E091      LDI	R25,1
    0275 939009D5  STS	OSTaskStkSize+1,R25
    0277 938009D4  STS	OSTaskStkSize,R24
(0089) 	OSTaskHardStkSize = OS_TASK_HARD_STK_SIZE;  // Setup the default hardware stack size
    0279 E480      LDI	R24,0x40
    027A E090      LDI	R25,0
    027B 939009D3  STS	OSTaskHardStkSize+1,R25
    027D 938009D2  STS	OSTaskHardStkSize,R24
(0090)     AppIOInit();
    027F D02F      RCALL	_AppIOInit
(0091) 
(0092) 	BeeIO();
    0280 DFE5      RCALL	_BeeIO
(0093) 	timer1_init();
    0281 DFE7      RCALL	_timer1_init
(0094) 	
(0095) 	
(0096) 	OSInit();                                   // Initialize "uC/OS-II, The Real-Time Kernel"
    0282 940E0715  CALL	_OSInit
(0097) 	watchdog_init();
    0284 D024      RCALL	_watchdog_init
(0098) 	 
(0099)  //---- Any initialization code before starting multitasking --------------//
(0100) 
(0101)  // View_Pic(aVfdDispRAM1,DisplayBuff1,1);
(0102) 	AppTaskCreate();
    0285 D00E      RCALL	_AppTaskCreate
(0103) 	AppTaskStart(&temp);
    0286 018E      MOVW	R16,R28
    0287 D005      RCALL	_AppTaskStart
(0104) 
(0105)  //---- Create any other task you want before we start multitasking -------//
(0106) 	WDR();
    0288 95A8      WDR
(0107)    
(0108) 	OSStart(); //Start multitasking (i.e. give control to uC/OS-II)
    0289 940E07F5  CALL	_OSStart
    028B 9621      ADIW	R28,1
    028C 9508      RET
_AppTaskStart:
  p_arg                --> R20
    028D 940E134D  CALL	push_gset1
    028F 01A8      MOVW	R20,R16
(0109) }
(0110) /*
(0111) *********************************************************************************************************
(0112) *                                          STARTUP TASK
(0113) *
(0114) * Description : This is an example of a startup task.  As mentioned in the book's text, you MUST
(0115) *               initialize the ticker only once multitasking has started.
(0116) *
(0117) * Arguments   : p_arg   is the argument passed to 'AppStartTask()' by 'OSTaskCreate()'.
(0118) *
(0119) * Notes       : 1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
(0120) *                  used.  The compiler should not generate any code for this statement.
(0121) *********************************************************************************************************
(0122) */
(0123) static void  AppTaskStart (void *p_arg)
(0124) {
(0125) 		p_arg = p_arg;          // Prevent compiler warnings
(0126) 		OSTickISR_Init();      // Initialize the ticker
    0290 D00C      RCALL	_OSTickISR_Init
    0291 940E1350  CALL	pop_gset1
    0293 9508      RET
(0127) }
(0128) /*
(0129) *********************************************************************************************************
(0130) *                                    CREATE APPLICATION TASKS
(0131) *
(0132) * Description : This function creates the application tasks.
(0133) *
(0134) * Arguments   : p_arg   is the argument passed to 'AppStartTask()' by 'OSTaskCreate()'.
(0135) *
(0136) * Notes       : 1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
(0137) *                  used.  The compiler should not generate any code for this statement.
(0138) *********************************************************************************************************
(0139) */
(0140) static  void  AppTaskCreate (void)
(0141) {
(0142) 	Init_AppTask1();                 //任务1初始化
_AppTaskCreate:
    0294 940E02C3  CALL	_Init_AppTask1
(0143) 	Init_AppTask2();                 //任务2初始化
    0296 940E0328  CALL	_Init_AppTask2
(0144) 	Init_AppTask6();                 //任务6初始化
    0298 940E0357  CALL	_Init_AppTask6
(0145) 	Init_AppTask8();                 //任务8初始化
    029A 940E0386  CALL	_Init_AppTask8
    029C 9508      RET
(0146) }
(0147) 
(0148) //----------------------------------------------------------------------------//
(0149) //SETUP THE TICK RATE  //中断在os_cpu_a.s上做定义并与ucos系统相结合
(0150) //----------------------------------------------------------------------------//
(0151) void  OSTickISR_Init (void)
(0152) {
(0153) 	    TCNT0 =0;
_OSTickISR_Init:
    029D 2422      CLR	R2
    029E BE22      OUT	0x32,R2
(0154) 		TCCR0 = 0x07;                    // Set TIMER0 prescaler to CLK/1024
    029F E087      LDI	R24,7
    02A0 BF83      OUT	0x33,R24
(0155) 		TIMSK = 0x01;                    // Enable TIMER0 overflow interrupt
    02A1 E081      LDI	R24,1
    02A2 BF87      OUT	0x37,R24
    02A3 9508      RET
(0156) }
(0157) //----------------------------------------------------------------------------//
(0158) //     SETUP THE TICK RATE
(0159) //----------------------------------------------------------------------------//
(0160) void  OSTickISR_Handler (void)
(0161) {
(0162) 		 TCNT0 = 0x64;       //100HZ   
_OSTickISR_Handler:
    02A4 E684      LDI	R24,0x64
    02A5 BF82      OUT	0x32,R24
(0163) 		 OSTimeTick();
    02A6 940E0838  CALL	_OSTimeTick
    02A8 9508      RET
(0164) }
(0165) //----------------------------------------------------------------------------//
(0166) //函数介绍: 看门狗初始化 (prescale: 2048K cycles = 2s)
(0167) //输入参数:--
(0168) // 输出参数:--
(0169) //返 回 值:--
(0170) //----------------------------------------------------------------------------//
(0171) void watchdog_init(void)
(0172) {
(0173) 		WDR();
_watchdog_init:
    02A9 95A8      WDR
(0174) 		WDTCR = (1<<WDCE)|(1<<WDE);
    02AA E188      LDI	R24,0x18
    02AB BD81      OUT	0x21,R24
(0175) 		WDTCR = (1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0);
    02AC E08F      LDI	R24,0xF
    02AD BD81      OUT	0x21,R24
    02AE 9508      RET
(0176) }
(0177)  
(0178) //----------------------------------------------------------------------------//
(0179) //     SETUP  I/Os
(0180) //----------------------------------------------------------------------------//
(0181) static void AppIOInit (void)        /*IO全部初始化为高阻态*/
(0182) {
(0183)  PORTA = 0x00;
_AppIOInit:
    02AF 2422      CLR	R2
    02B0 BA2B      OUT	0x1B,R2
(0184)  DDRA  = 0x00;
    02B1 BA2A      OUT	0x1A,R2
(0185)  PORTB = 0x00;
    02B2 BA28      OUT	0x18,R2
(0186)  DDRB  = 0x00;
    02B3 BA27      OUT	0x17,R2
(0187)  PORTC = 0x00; //m103 output only
    02B4 BA25      OUT	0x15,R2
(0188)  DDRC  = 0x00;
    02B5 BA24      OUT	0x14,R2
(0189)  PORTD = 0x00;
    02B6 BA22      OUT	0x12,R2
(0190)  DDRD  = 0x00;
    02B7 BA21      OUT	0x11,R2
(0191)  PORTE = 0x00;
    02B8 B823      OUT	0x03,R2
(0192)  DDRE  = 0x00;
    02B9 B822      OUT	0x02,R2
(0193)  PORTF = 0x00;
    02BA 92200062  STS	0x62,R2
(0194)  DDRF  = 0x00;
    02BC 92200061  STS	0x61,R2
(0195)  PORTG = 0x00;
    02BE 92200065  STS	0x65,R2
(0196)  DDRG  = 0x00;
    02C0 92200064  STS	0x64,R2
    02C2 9508      RET
_Init_AppTask1:
    02C3 9723      SBIW	R28,3
FILE: D:\编写软件小系统\纯ucos\source\AppTask1.c
(0001) 
(0002) #include  "..\include\includes.h"
(0003) #include  "..\include\Publics.H"
(0004) #include  "..\include\menu.h"

⌨️ 快捷键说明

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