?? led.lst
字號:
685 02f0 8093 0000 sts f_60s,r24
686 .L59:
144:drive/led.c ****
145:drive/led.c **** if( ++cnt > (200/T0_TICK) )
688 .LM49:
689 02f4 8091 0000 lds r24,cnt
690 02f8 9091 0000 lds r25,(cnt)+1
691 02fc 0196 adiw r24,1
692 02fe 9093 0000 sts (cnt)+1,r25
693 0302 8093 0000 sts cnt,r24
694 0306 893C cpi r24,201
695 0308 9105 cpc r25,__zero_reg__
696 030a 48F0 brlo .L60
146:drive/led.c **** {
147:drive/led.c **** cnt =0;
698 .LM50:
699 030c 1092 0000 sts (cnt)+1,__zero_reg__
700 0310 1092 0000 sts cnt,__zero_reg__
148:drive/led.c ****
149:drive/led.c **** fFlashison =~ fFlashison;
702 .LM51:
703 0314 8091 0000 lds r24,fFlashison
704 0318 8095 com r24
705 031a 8093 0000 sts fFlashison,r24
706 .L60:
150:drive/led.c **** }
151:drive/led.c ****
152:drive/led.c **** ledbuffer =LedData[LedCnt];
708 .LM52:
709 031e 6091 0000 lds r22,LedCnt
710 0322 862F mov r24,r22
711 0324 9927 clr r25
712 0326 FC01 movw r30,r24
713 0328 E050 subi r30,lo8(-(LedData))
714 032a F040 sbci r31,hi8(-(LedData))
715 032c E081 ld r30,Z
153:drive/led.c **** //--------------------------------------------------------------------------------
154:drive/led.c **** if( ( fLedFlashMap&(1<<LedCnt))!=0 )
717 .LM53:
718 032e 21E0 ldi r18,lo8(1)
719 0330 30E0 ldi r19,hi8(1)
720 0332 02C0 rjmp 2f
721 0334 220F 1: lsl r18
722 0336 331F rol r19
723 0338 8A95 2: dec r24
724 033a E2F7 brpl 1b
725 033c 8091 0000 lds r24,fLedFlashMap
726 0340 9091 0000 lds r25,(fLedFlashMap)+1
727 0344 8223 and r24,r18
728 0346 9323 and r25,r19
729 0348 892B or r24,r25
730 034a 19F0 breq .L61
155:drive/led.c **** {
156:drive/led.c **** ledbuffer =ledbuffer&fFlashison;//
732 .LM54:
733 034c 8091 0000 lds r24,fFlashison
734 0350 E823 and r30,r24
735 .L61:
157:drive/led.c **** }
158:drive/led.c **** //----------------------------------------------------------------
159:drive/led.c **** DispSeperateShow ( ledbuffer , LedCnt );
737 .LM55:
738 0352 8E2F mov r24,r30
739 0354 D8DE rcall DispSeperateShow
160:drive/led.c ****
161:drive/led.c **** LedCnt ++ ;
741 .LM56:
742 0356 8091 0000 lds r24,LedCnt
743 035a 8F5F subi r24,lo8(-(1))
744 035c 8093 0000 sts LedCnt,r24
162:drive/led.c ****
163:drive/led.c **** if( DIGMAX == LedCnt ) LedCnt=1;
746 .LM57:
747 0360 8A30 cpi r24,lo8(10)
748 0362 19F4 brne .L54
749 0364 81E0 ldi r24,lo8(1)
750 0366 8093 0000 sts LedCnt,r24
751 .L54:
752 /* epilogue: frame size=0 */
753 036a FF91 pop r31
754 036c EF91 pop r30
755 036e BF91 pop r27
756 0370 AF91 pop r26
757 0372 9F91 pop r25
758 0374 8F91 pop r24
759 0376 7F91 pop r23
760 0378 6F91 pop r22
761 037a 5F91 pop r21
762 037c 4F91 pop r20
763 037e 3F91 pop r19
764 0380 2F91 pop r18
765 0382 0F90 pop __tmp_reg__
766 0384 0FBE out __SREG__,__tmp_reg__
767 0386 0F90 pop __tmp_reg__
768 0388 1F90 pop __zero_reg__
769 038a 1895 reti
770 /* epilogue end (size=17) */
771 /* function __vector_4 size 215 (181) */
776 .Lscope3:
778 .global FlashDigRst
780 FlashDigRst:
164:drive/led.c ****
165:drive/led.c **** }
166:drive/led.c **** void FlashDigRst(void)
167:drive/led.c **** {
782 .LM58:
783 /* prologue: frame size=0 */
784 /* prologue end (size=0) */
168:drive/led.c **** fLedFlashMap = 0;
786 .LM59:
787 038c 1092 0000 sts (fLedFlashMap)+1,__zero_reg__
788 0390 1092 0000 sts fLedFlashMap,__zero_reg__
789 /* epilogue: frame size=0 */
790 0394 0895 ret
791 /* epilogue end (size=1) */
792 /* function FlashDigRst size 5 (4) */
794 .Lscope4:
797 .global FlashDigOn
799 FlashDigOn:
169:drive/led.c **** }
170:drive/led.c ****
171:drive/led.c ****
172:drive/led.c **** void FlashDigOn(uint16 whichDig)
173:drive/led.c **** {
801 .LM60:
802 /* prologue: frame size=0 */
803 /* prologue end (size=0) */
174:drive/led.c **** fLedFlashMap|= (1<<whichDig);
805 .LM61:
806 0396 21E0 ldi r18,lo8(1)
807 0398 30E0 ldi r19,hi8(1)
808 039a 02C0 rjmp 2f
809 039c 220F 1: lsl r18
810 039e 331F rol r19
811 03a0 8A95 2: dec r24
812 03a2 E2F7 brpl 1b
813 03a4 8091 0000 lds r24,fLedFlashMap
814 03a8 9091 0000 lds r25,(fLedFlashMap)+1
815 03ac 822B or r24,r18
816 03ae 932B or r25,r19
817 03b0 9093 0000 sts (fLedFlashMap)+1,r25
818 03b4 8093 0000 sts fLedFlashMap,r24
819 /* epilogue: frame size=0 */
820 03b8 0895 ret
821 /* epilogue end (size=1) */
822 /* function FlashDigOn size 19 (18) */
824 .Lscope5:
827 .global FlashDigOff
829 FlashDigOff:
175:drive/led.c **** }
176:drive/led.c **** void FlashDigOff(uint16 whichDig)
177:drive/led.c **** {
831 .LM62:
832 /* prologue: frame size=0 */
833 /* prologue end (size=0) */
178:drive/led.c **** fLedFlashMap&= ~(1<<whichDig);
835 .LM63:
836 03ba 21E0 ldi r18,lo8(1)
837 03bc 30E0 ldi r19,hi8(1)
838 03be 02C0 rjmp 2f
839 03c0 220F 1: lsl r18
840 03c2 331F rol r19
841 03c4 8A95 2: dec r24
842 03c6 E2F7 brpl 1b
843 03c8 2095 com r18
844 03ca 3095 com r19
845 03cc 8091 0000 lds r24,fLedFlashMap
846 03d0 9091 0000 lds r25,(fLedFlashMap)+1
847 03d4 8223 and r24,r18
848 03d6 9323 and r25,r19
849 03d8 9093 0000 sts (fLedFlashMap)+1,r25
850 03dc 8093 0000 sts fLedFlashMap,r24
851 /* epilogue: frame size=0 */
852 03e0 0895 ret
853 /* epilogue end (size=1) */
854 /* function FlashDigOff size 21 (20) */
856 .Lscope6:
858 .global RmvDotAll
860 RmvDotAll:
179:drive/led.c **** }
180:drive/led.c ****
181:drive/led.c **** /**************add num pot***************/
182:drive/led.c **** void RmvDotAll(void)
183:drive/led.c **** {
862 .LM64:
863 /* prologue: frame size=0 */
864 /* prologue end (size=0) */
184:drive/led.c **** fLedDotMap = 0;
866 .LM65:
867 03e2 1092 0000 sts fLedDotMap,__zero_reg__
868 /* epilogue: frame size=0 */
869 03e6 0895 ret
870 /* epilogue end (size=1) */
871 /* function RmvDotAll size 3 (2) */
873 .Lscope7:
876 .global AddDotOn
878 AddDotOn:
185:drive/led.c **** }
186:drive/led.c ****
187:drive/led.c ****
188:drive/led.c **** void AddDotOn(uint16 whichDig)
189:drive/led.c **** {
880 .LM66:
881 /* prologue: frame size=0 */
882 /* prologue end (size=0) */
190:drive/led.c **** fLedDotMap|= (1<<whichDig);
884 .LM67:
885 03e8 21E0 ldi r18,lo8(1)
886 03ea 30E0 ldi r19,hi8(1)
887 03ec 02C0 rjmp 2f
888 03ee 220F 1: lsl r18
889 03f0 331F rol r19
890 03f2 8A95 2: dec r24
891 03f4 E2F7 brpl 1b
892 03f6 8091 0000 lds r24,fLedDotMap
893 03fa 822B or r24,r18
894 03fc 8093 0000 sts fLedDotMap,r24
895 /* epilogue: frame size=0 */
896 0400 0895 ret
897 /* epilogue end (size=1) */
898 /* function AddDotOn size 14 (13) */
900 .Lscope8:
903 .global RmvDot
905 RmvDot:
191:drive/led.c **** }
192:drive/led.c **** void RmvDot(uint16 whichDig)
193:drive/led.c **** {
907 .LM68:
908 /* prologue: frame size=0 */
909 /* prologue end (size=0) */
194:drive/led.c **** fLedDotMap&= ~(1<<whichDig);
911 .LM69:
912 0402 21E0 ldi r18,lo8(1)
913 0404 30E0 ldi r19,hi8(1)
914 0406 02C0 rjmp 2f
915 0408 220F 1: lsl r18
916 040a 331F rol r19
917 040c 8A95 2: dec r24
918 040e E2F7 brpl 1b
919 0410 922F mov r25,r18
920 0412 9095 com r25
921 0414 8091 0000 lds r24,fLedDotMap
922 0418 8923 and r24,r25
923 041a 8093 0000 sts fLedDotMap,r24
924 /* epilogue: frame size=0 */
925 041e 0895 ret
926 /* epilogue end (size=1) */
927 /* function RmvDot size 16 (15) */
929 .Lscope9:
933 .global LedUpdateByDig
935 LedUpdateByDig:
195:drive/led.c **** }
196:drive/led.c ****
197:drive/led.c ****
198:drive/led.c ****
199:drive/led.c ****
200:drive/led.c ****
201:drive/led.c ****
202:drive/led.c ****
203:drive/led.c **** /*******************************************************************
204:drive/led.c **** * subname: void Displayhumidity(uint8 humidity);
205:drive/led.c **** ********************************************************************/
206:drive/led.c **** void DisplayHumidity(uint8 humidity)
207:drive/led.c **** {
208:drive/led.c **** if((humidity>100))
209:drive/led.c **** {
210:drive/led.c **** LedData[4] = 0x40 ; //directly pass the value to led buffer
211:drive/led.c **** LedData[5] = 0x40 ;
212:drive/led.c **** LedData[6] = 0x40 ;
213:drive/led.c **** }
214:drive/led.c **** else
215:drive/led.c **** {
216:drive/led.c **** if(humidity==100)
217:drive/led.c **** {
218:drive/led.c **** LedUpdateByDig(4,humidity/100 ) ;//也可用該函數
219:drive/led.c **** LedUpdateByDig(5,0 ) ;//也可用該函數
220:drive/led.c **** }
221:drive/led.c **** else
222:drive/led.c **** {
223:drive/led.c **** LedData[4] = 0x00 ;
224:drive/led.c **** LedUpdateByDig(5,humidity/10 ) ;//也可用該函數
225:drive/led.c **** }
226:drive/led.c ****
227:drive/led.c **** LedUpdateByDig(6,humidity%10 ) ;//也可用該函數
228:drive/led.c **** }
229:drive/led.c **** }
230:drive/led.c ****
231:drive/led.c ****
232:drive/led.c ****
233:drive/led.c **** void LedUpdateByDig(uint8 Dig_n,uint8 led_val )
234:drive/led.c **** {
937 .LM70:
938 /* prologue: frame size=0 */
939 /* prologue end (size=0) */
235:drive/led.c ****
236:drive/led.c **** if( ( (fLedDotMap&(1<<Dig_n)) !=0 )&& (led_val!=28))
941 .LM71:
942 0420 9091 0000 lds r25,fLedDotMap
943 0424 292F mov r18,r25
944 0426 3327 clr r19
945 0428 A82F mov r26,r24
946 042a BB27 clr r27
947 042c 0A2E mov r0,r26
948 042e 02C0 rjmp 2f
949 0430 3595 1: asr r19
950 0432 2795 ror r18
951 0434 0A94 2: dec r0
952 0436 E2F7 brpl 1b
953 0438 20FF sbrs r18,0
954 043a 0BC0 rjmp .L70
956 .LM72:
957 043c 6C31 cpi r22,lo8(28)
958 043e 49F0 breq .L70
237:drive/led.c **** //content!=0x00 消除發消隱時
238:drive/led.c **** {
239:drive/led.c **** LedData[Dig_n] =pgm_read_byte(LedSeg+led_val)|0x80;
960 .LM73:
961 0440 A050 subi r26,lo8(-(LedData))
962 0442 B040 sbci r27,hi8(-(LedData))
963 .LBB2:
964 0444 E62F mov r30,r22
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -