📄 main.lst
字号:
85:main.c **** uint8_t bit_pos; //bit position in demodulation
86:main.c ****
87:main.c **** uint8_t edge; //bit_phase FSK
88:main.c **** uint8_t last_valid; //last valid value for invalid sequence compression
89:main.c **** uint8_t last_z; //FSK last pulse number
90:main.c ****
91:main.c **** uint16_t old_capture; //one subcarrier variable
92:main.c **** uint16_t previous_delay; //noise delay storage variable
93:main.c ****
94:main.c **** uint8_t pulsesPerBit2;
95:main.c **** uint8_t pulsesPerBit3;
96:main.c ****
97:main.c **** #define TOLERANCE (3)
98:main.c ****
99:main.c **** // ==================================================================
100:main.c **** // function declarations
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 6
101:main.c **** void avr_ini( void );
102:main.c **** void Beep( uint8_t times );
103:main.c **** void Beep_Long( void );
104:main.c **** void Capture( uint8_t style );
105:main.c **** uint8_t Check_EEPROM( void );
106:main.c **** void Delayms( uint16_t count );
107:main.c **** void Delayus( uint16_t count );
108:main.c **** int main( void );
109:main.c **** void Reset_To_Default( void );
110:main.c **** void Parse_Command( uint8_t cmd , uint8_t param );
111:main.c **** void store_bit( uint8_t b , uint8_t v );
112:main.c **** void Wait( uint16_t period );
113:main.c **** void WatchDog_Feed( void );
114:main.c ****
115:main.c **** // ==================================================================
116:main.c ****
117:main.c **** void avr_ini( void )
118:main.c **** {
186 .stabn 68,0,118,.LM1-avr_ini
187 .LM1:
188 /* prologue: frame size=0 */
189 0000 1F93 push r17
190 /* prologue end (size=1) */
119:main.c ****
120:main.c **** // ---------------------------------------------------------------
121:main.c **** // UART initialization
122:main.c **** // ---------------------------------------------------------------
123:main.c ****
124:main.c **** UARTIni( ); // level4 uart init routine
191 .stabn 68,0,124,.LM2-avr_ini
192 .LM2:
193 0002 00D0 rcall UARTIni
125:main.c ****
126:main.c **** // ---------------------------------------------------------------
127:main.c **** // 16-bit Timer/Counter1 initialization
128:main.c **** // ---------------------------------------------------------------
129:main.c ****
130:main.c **** TCCR1A = 0; // no compare otuput, no PWM mode ...
194 .stabn 68,0,130,.LM3-avr_ini
195 .LM3:
196 0004 1FBC out 79-0x20,__zero_reg__
131:main.c **** TCCR1B = 0; // stopped on startup
197 .stabn 68,0,131,.LM4-avr_ini
198 .LM4:
199 0006 1EBC out 78-0x20,__zero_reg__
132:main.c ****
133:main.c **** // ---------------------------------------------------------------
134:main.c **** // I/O Ports initialization
135:main.c **** // ---------------------------------------------------------------
136:main.c **** /*
137:main.c **** PORTB = 0;
138:main.c **** PORTC = (1 << DCLK_PIN) | (0 << MOD_PIN); //set SPI active == EM4094 normal function blocked
139:main.c **** PORTD = 0; // notmodulation == startup antenna on
140:main.c **** // LED On
141:main.c ****
142:main.c **** DDRB = 0x02; // PORTB.0,2-7 as input, PORTB.1 = SDA = output
143:main.c **** DDRC = 0x0F; // PORTC.(3-0) = (SCK, LED, DCLK, DIN=MOD) = output, rest = input
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 7
144:main.c **** #ifdef DEBUG
145:main.c **** DDRD = 0x44; // PORTD.(7,6,2) = (SSN, DBG_TRANS, DBG_FORWARD) = output, rest = input, SSN
146:main.c **** #else
147:main.c **** DDRD = 0x00; // PORTD.(7,6,2) = (SSN, DBG_TRANS, DBG_FORWARD) = output, rest = input, SSN
148:main.c **** #endif
149:main.c **** */
150:main.c **** DDRB = 0x06;
200 .stabn 68,0,150,.LM5-avr_ini
201 .LM5:
202 0008 86E0 ldi r24,lo8(6)
203 000a 87BB out 55-0x20,r24
151:main.c **** DDRC = 0x37;
204 .stabn 68,0,151,.LM6-avr_ini
205 .LM6:
206 000c 87E3 ldi r24,lo8(55)
207 000e 84BB out 52-0x20,r24
152:main.c **** DDRD = 0xC2;
208 .stabn 68,0,152,.LM7-avr_ini
209 .LM7:
210 0010 82EC ldi r24,lo8(-62)
211 0012 81BB out 49-0x20,r24
153:main.c ****
154:main.c **** PORTB = 0x00; //如果weigan0和weigan1不置低,则wd0和wd1第一次输出会有问题;
212 .stabn 68,0,154,.LM8-avr_ini
213 .LM8:
214 0014 18BA out 56-0x20,__zero_reg__
155:main.c **** PORTC = 0x01;
215 .stabn 68,0,155,.LM9-avr_ini
216 .LM9:
217 0016 81E0 ldi r24,lo8(1)
218 0018 85BB out 53-0x20,r24
156:main.c **** PORTD = 0xC0;
219 .stabn 68,0,156,.LM10-avr_ini
220 .LM10:
221 001a 80EC ldi r24,lo8(-64)
222 001c 82BB out 50-0x20,r24
157:main.c ****
158:main.c **** // ---------------------------------------------------------------
159:main.c **** // Watch Dog Setup
160:main.c **** // ---------------------------------------------------------------
161:main.c **** cbi( MCUCSR , WDRF ); //clear watchdog reset flag
223 .stabn 68,0,161,.LM11-avr_ini
224 .LM11:
225 001e 84B7 in r24,84-0x20
226 0020 877F andi r24,lo8(-9)
227 0022 84BF out 84-0x20,r24
162:main.c **** wdt_enable( 0x07 );
228 .stabn 68,0,162,.LM12-avr_ini
229 .LM12:
230 0024 88E1 ldi r24,lo8(24)
231 0026 90E0 ldi r25,hi8(24)
232 0028 2FE0 ldi r18,lo8(15)
233 /* #APP */
234 002a 0FB6 in __tmp_reg__,__SREG__
235 002c F894 cli
236 002e A895 wdr
237 0030 81BD out 33,r24
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 8
238 0032 0FBE out __SREG__,__tmp_reg__
239 0034 21BD out 33,r18
163:main.c ****
164:main.c ****
165:main.c **** while( Check_EEPROM( ) == 0x00 )
240 .stabn 68,0,165,.LM13-avr_ini
241 .LM13:
242 /* #NOAPP */
243 0036 01C0 rjmp .L2
244 .L5:
166:main.c **** Reset_To_Default( );
245 .stabn 68,0,166,.LM14-avr_ini
246 .LM14:
247 0038 58D3 rcall Reset_To_Default
248 .L2:
249 003a FCD2 rcall Check_EEPROM
250 003c 8823 tst r24
251 003e E1F3 breq .L5
167:main.c ****
168:main.c **** // ---------------------------------------------------------------
169:main.c **** // General Interrupt Enable
170:main.c **** // ---------------------------------------------------------------
171:main.c ****
172:main.c **** MCUCR = ( ( 1 << ISC11 ) | ( 1 << ISC10 ) ); //INT1 triggered on rising edge
252 .stabn 68,0,172,.LM15-avr_ini
253 .LM15:
254 0040 8CE0 ldi r24,lo8(12)
255 0042 85BF out 85-0x20,r24
173:main.c **** GICR = 0; //INT0 & INT1 disabled
256 .stabn 68,0,173,.LM16-avr_ini
257 .LM16:
258 0044 1BBE out 91-0x20,__zero_reg__
174:main.c ****
175:main.c **** watchdog_feed_flag = 0 ; //feed dog sign,0 for not feed dog , other value for has feed dog;
259 .stabn 68,0,175,.LM17-avr_ini
260 .LM17:
261 0046 1092 0000 sts watchdog_feed_flag,__zero_reg__
176:main.c ****
177:main.c **** // weigan_format = 1 ; //1--Weigan26 , 2--Weigan34 , 3--Weigan36 , 4--Weigan44 ,5--9600bps ;
178:main.c **** if( eeprom_rb( &WEIGAN_FORMAT ) == eeprom_rb( &WEIGAN_FORMAT_CHK ) )
262 .stabn 68,0,178,.LM18-avr_ini
263 .LM18:
264 004a 80E0 ldi r24,lo8(WEIGAN_FORMAT)
265 004c 90E0 ldi r25,hi8(WEIGAN_FORMAT)
266 004e 00D0 rcall eeprom_read_byte
267 0050 182F mov r17,r24
268 0052 80E0 ldi r24,lo8(WEIGAN_FORMAT_CHK)
269 0054 90E0 ldi r25,hi8(WEIGAN_FORMAT_CHK)
270 0056 00D0 rcall eeprom_read_byte
271 0058 1817 cp r17,r24
272 005a 21F4 brne .L6
179:main.c **** {
180:main.c **** weigan_format = eeprom_rb( &WEIGAN_FORMAT );
273 .stabn 68,0,180,.LM19-avr_ini
274 .LM19:
275 005c 80E0 ldi r24,lo8(WEIGAN_FORMAT)
276 005e 90E0 ldi r25,hi8(WEIGAN_FORMAT)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 9
277 0060 00D0 rcall eeprom_read_byte
278 0062 01C0 rjmp .L14
279 .L6:
181:main.c **** }
182:main.c **** else
183:main.c **** weigan_format = 0x01;
280 .stabn 68,0,183,.LM20-avr_ini
281 .LM20:
282 0064 81E0 ldi r24,lo8(1)
283 .L14:
284 0066 8093 0000 sts weigan_format,r24
184:main.c ****
185:main.c **** if( eeprom_rb( &ALARM_LEVEL ) == eeprom_rb( &ALARM_LEVEL_CHK ) )
285 .stabn 68,0,185,.LM21-avr_ini
286 .LM21:
287 006a 80E0 ldi r24,lo8(ALARM_LEVEL)
288 006c 90E0 ldi r25,hi8(ALARM_LEVEL)
289 006e 00D0 rcall eeprom_read_byte
290 0070 182F mov r17,r24
291 0072 80E0 ldi r24,lo8(ALARM_LEVEL_CHK)
292 0074 90E0 ldi r25,hi8(ALARM_LEVEL_CHK)
293 0076 00D0 rcall eeprom_read_byte
294 0078 1817 cp r17,r24
295 007a 21F4 brne .L8
186:main.c **** alarm_level = eeprom_rb( &ALARM_LEVEL );
296 .stabn 68,0,186,.LM22-avr_ini
297 .LM22:
298 007c 80E0 ldi r24,lo8(ALARM_LEVEL)
299 007e 90E0 ldi r25,hi8(ALARM_LEVEL)
300 0080 00D0 rcall eeprom_read_byte
301 0082 01C0 rjmp .L15
302 .L8:
187:main.c **** else
188:main.c **** alarm_level = 0x01;
303 .stabn 68,0,188,.LM23-avr_ini
304 .LM23:
305 0084 81E0 ldi r24,lo8(1)
306 .L15:
307 0086 8093 0000 sts alarm_level,r24
189:main.c ****
190:main.c **** if( eeprom_rb( &ALARM_TIME ) == eeprom_rb( &ALARM_TIME_CHK ) )
308 .stabn 68,0,190,.LM24-avr_ini
309 .LM24:
310 008a 80E0 ldi r24,lo8(ALARM_TIME)
311 008c 90E0 ldi r25,hi8(ALARM_TIME)
312 008e 00D0 rcall eeprom_read_byte
313 0090 182F mov r17,r24
314 0092 80E0 ldi r24,lo8(ALARM_TIME_CHK)
315 0094 90E0 ldi r25,hi8(ALARM_TIME_CHK)
316 0096 00D0 rcall eeprom_read_byte
317 0098 1817 cp r17,r24
318 009a 21F4 brne .L10
191:main.c **** alarm_time = eeprom_rb( &ALARM_TIME );
319 .stabn 68,0,191,.LM25-avr_ini
320 .LM25:
321 009c 80E0 ldi r24,lo8(ALARM_TIME)
322 009e 90E0 ldi r25,hi8(ALARM_TIME)
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccARbaaa.s page 10
323 00a0 00D0 rcall eeprom_read_byte
324 00a2 01C0 rjmp .L16
325 .L10:
192:main.c **** else
193:main.c **** alarm_time = 0x05;
326 .stabn 68,0,193,.LM26-avr_ini
327 .LM26:
328 00a4 85E0 ldi r24,lo8(5)
329 .L16:
330 00a6 8093 0000 sts alarm_time,r24
194:main.c ****
195:main.c **** if( eeprom_rb( &ALARM_ENABLE ) == eeprom_rb( &ALARM_ENABLE_CHK ) )
331 .stabn 68,0,195,.LM27-avr_ini
332 .LM27:
333 00aa 80E0 ldi r24,lo8(ALARM_ENABLE)
334 00ac 90E0 ldi r25,hi8(ALARM_ENABLE)
335 00ae 00D0 rcall eeprom_read_byte
336 00b0 182F mov r17,r24
337 00b2 80E0 ldi r24,lo8(ALARM_ENABLE_CHK)
338 00b4 90E0 ldi r25,hi8(ALARM_ENABLE_CHK)
339 00b6 00D0 rcall eeprom_read_byte
340 00b8 1817 cp r17,r24
341 00ba 21F4 brne .L12
196:main.c **** alarm_enable = eeprom_rb( &ALARM_ENABLE );
342 .stabn 68,0,196,.LM28-avr_ini
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -