0,0 → 1,8150 |
|
|
Microchip Technology PIC LITE Macro Assembler V1.20 build 52243 |
Sun Jan 26 16:29:58 2014 |
|
Microchip Technology Omniscient Code Generator (Lite mode) build 52243 |
1 processor 16F1829 |
2 opt pw 120 |
3 opt lm |
4 psect idataBANK0,global,class=CODE,delta=2 |
5 psect nvCOMMON,global,class=COMMON,space=1,delta=1 |
6 psect nvBANK0,global,class=BANK0,space=1,delta=1 |
7 psect cinit,global,class=CODE,merge=1,delta=2 |
8 psect dataBANK0,global,class=BANK0,space=1,delta=1 |
9 psect inittext,global,class=CODE,delta=2 |
10 psect cstackBANK2,global,class=BANK2,space=1,delta=1 |
11 psect cstackBANK1,global,class=BANK1,space=1,delta=1 |
12 psect cstackCOMMON,global,class=COMMON,space=1,delta=1 |
13 psect cstackBANK0,global,class=BANK0,space=1,delta=1 |
14 psect maintext,global,class=CODE,merge=1,split=1,delta=2 |
15 psect text1,local,class=CODE,merge=1,delta=2 |
16 psect text2,local,class=CODE,merge=1,delta=2 |
17 psect text3,local,class=CODE,merge=1,delta=2 |
18 psect text4,local,class=CODE,merge=1,delta=2 |
19 psect text5,local,class=CODE,merge=1,delta=2 |
20 psect text6,local,class=CODE,merge=1,delta=2 |
21 psect text7,local,class=CODE,merge=1,delta=2 |
22 psect text8,local,class=CODE,merge=1,delta=2 |
23 psect text9,local,class=CODE,merge=1,delta=2 |
24 psect text10,local,class=CODE,merge=1,delta=2 |
25 psect text11,local,class=CODE,merge=1,delta=2 |
26 psect text12,local,class=CODE,merge=1,delta=2 |
27 psect text13,local,class=CODE,merge=1,delta=2 |
28 psect text14,local,class=CODE,merge=1,delta=2 |
29 psect text15,local,class=CODE,merge=1,delta=2 |
30 psect text16,local,class=CODE,merge=1,delta=2 |
31 psect intentry,global,class=CODE,delta=2 |
32 psect text18,local,class=CODE,merge=1,delta=2 |
33 psect text19,local,class=CODE,merge=1,delta=2 |
34 psect text20,local,class=CODE,merge=1,delta=2 |
35 psect text21,local,class=CODE,merge=1,delta=2 |
36 psect text22,local,class=CODE,merge=1,delta=2 |
37 psect text23,local,class=CODE,merge=1,delta=2 |
38 psect text24,local,class=CODE,merge=1,delta=2 |
39 psect text25,local,class=CODE,merge=1,delta=2 |
40 dabs 1,0x7E,2 |
41 0000 ;# |
42 0001 ;# |
43 0002 ;# |
44 0003 ;# |
45 0004 ;# |
46 0005 ;# |
47 0006 ;# |
48 0007 ;# |
49 0008 ;# |
50 0009 ;# |
51 000A ;# |
52 000B ;# |
53 000C ;# |
54 000D ;# |
55 000E ;# |
56 0011 ;# |
57 0012 ;# |
58 0013 ;# |
59 0014 ;# |
60 0015 ;# |
61 0016 ;# |
62 0016 ;# |
63 0017 ;# |
64 0018 ;# |
65 0019 ;# |
66 001A ;# |
67 001B ;# |
68 001C ;# |
69 001E ;# |
70 001F ;# |
71 008C ;# |
72 008D ;# |
73 008E ;# |
74 0091 ;# |
75 0092 ;# |
76 0093 ;# |
77 0094 ;# |
78 0095 ;# |
79 0096 ;# |
80 0097 ;# |
81 0098 ;# |
82 0099 ;# |
83 009A ;# |
84 009B ;# |
85 009B ;# |
86 009C ;# |
87 009D ;# |
88 009E ;# |
89 010C ;# |
90 010D ;# |
91 010E ;# |
92 0111 ;# |
93 0112 ;# |
94 0113 ;# |
95 0114 ;# |
96 0115 ;# |
97 0116 ;# |
98 0117 ;# |
99 0118 ;# |
100 0119 ;# |
101 011A ;# |
102 011B ;# |
103 011D ;# |
104 011E ;# |
105 018C ;# |
106 018D ;# |
107 018E ;# |
108 0191 ;# |
109 0191 ;# |
110 0192 ;# |
111 0193 ;# |
112 0193 ;# |
113 0193 ;# |
114 0194 ;# |
115 0195 ;# |
116 0196 ;# |
117 0199 ;# |
118 019A ;# |
119 019B ;# |
120 019B ;# |
121 019C ;# |
122 019D ;# |
123 019E ;# |
124 019F ;# |
125 020C ;# |
126 020D ;# |
127 020E ;# |
128 0211 ;# |
129 0211 ;# |
130 0212 ;# |
131 0212 ;# |
132 0213 ;# |
133 0213 ;# |
134 0214 ;# |
135 0214 ;# |
136 0215 ;# |
137 0215 ;# |
138 0215 ;# |
139 0216 ;# |
140 0216 ;# |
141 0217 ;# |
142 0217 ;# |
143 0219 ;# |
144 021A ;# |
145 021B ;# |
146 021C ;# |
147 021D ;# |
148 021E ;# |
149 021F ;# |
150 0291 ;# |
151 0292 ;# |
152 0293 ;# |
153 0294 ;# |
154 0295 ;# |
155 0295 ;# |
156 0296 ;# |
157 0298 ;# |
158 0299 ;# |
159 029A ;# |
160 029B ;# |
161 029C ;# |
162 029D ;# |
163 029E ;# |
164 0311 ;# |
165 0312 ;# |
166 0313 ;# |
167 0318 ;# |
168 0319 ;# |
169 031A ;# |
170 038C ;# |
171 038D ;# |
172 038E ;# |
173 0391 ;# |
174 0392 ;# |
175 0393 ;# |
176 0394 ;# |
177 0395 ;# |
178 0396 ;# |
179 039A ;# |
180 039C ;# |
181 039D ;# |
182 039E ;# |
183 039F ;# |
184 0415 ;# |
185 0416 ;# |
186 0417 ;# |
187 041C ;# |
188 041D ;# |
189 041E ;# |
190 0FE4 ;# |
191 0FE5 ;# |
192 0FE6 ;# |
193 0FE7 ;# |
194 0FE8 ;# |
195 0FE9 ;# |
196 0FEA ;# |
197 0FEB ;# |
198 0FED ;# |
199 0FEE ;# |
200 0FEF ;# |
201 0000 ;# |
202 0001 ;# |
203 0002 ;# |
204 0003 ;# |
205 0004 ;# |
206 0005 ;# |
207 0006 ;# |
208 0007 ;# |
209 0008 ;# |
210 0009 ;# |
211 000A ;# |
212 000B ;# |
213 000C ;# |
214 000D ;# |
215 000E ;# |
216 0011 ;# |
217 0012 ;# |
218 0013 ;# |
219 0014 ;# |
220 0015 ;# |
221 0016 ;# |
222 0016 ;# |
223 0017 ;# |
224 0018 ;# |
225 0019 ;# |
226 001A ;# |
227 001B ;# |
228 001C ;# |
229 001E ;# |
230 001F ;# |
231 008C ;# |
232 008D ;# |
233 008E ;# |
234 0091 ;# |
235 0092 ;# |
236 0093 ;# |
237 0094 ;# |
238 0095 ;# |
239 0096 ;# |
240 0097 ;# |
241 0098 ;# |
242 0099 ;# |
243 009A ;# |
244 009B ;# |
245 009B ;# |
246 009C ;# |
247 009D ;# |
248 009E ;# |
249 010C ;# |
250 010D ;# |
251 010E ;# |
252 0111 ;# |
253 0112 ;# |
254 0113 ;# |
255 0114 ;# |
256 0115 ;# |
257 0116 ;# |
258 0117 ;# |
259 0118 ;# |
260 0119 ;# |
261 011A ;# |
262 011B ;# |
263 011D ;# |
264 011E ;# |
265 018C ;# |
266 018D ;# |
267 018E ;# |
268 0191 ;# |
269 0191 ;# |
270 0192 ;# |
271 0193 ;# |
272 0193 ;# |
273 0193 ;# |
274 0194 ;# |
275 0195 ;# |
276 0196 ;# |
277 0199 ;# |
278 019A ;# |
279 019B ;# |
280 019B ;# |
281 019C ;# |
282 019D ;# |
283 019E ;# |
284 019F ;# |
285 020C ;# |
286 020D ;# |
287 020E ;# |
288 0211 ;# |
289 0211 ;# |
290 0212 ;# |
291 0212 ;# |
292 0213 ;# |
293 0213 ;# |
294 0214 ;# |
295 0214 ;# |
296 0215 ;# |
297 0215 ;# |
298 0215 ;# |
299 0216 ;# |
300 0216 ;# |
301 0217 ;# |
302 0217 ;# |
303 0219 ;# |
304 021A ;# |
305 021B ;# |
306 021C ;# |
307 021D ;# |
308 021E ;# |
309 021F ;# |
310 0291 ;# |
311 0292 ;# |
312 0293 ;# |
313 0294 ;# |
314 0295 ;# |
315 0295 ;# |
316 0296 ;# |
317 0298 ;# |
318 0299 ;# |
319 029A ;# |
320 029B ;# |
321 029C ;# |
322 029D ;# |
323 029E ;# |
324 0311 ;# |
325 0312 ;# |
326 0313 ;# |
327 0318 ;# |
328 0319 ;# |
329 031A ;# |
330 038C ;# |
331 038D ;# |
332 038E ;# |
333 0391 ;# |
334 0392 ;# |
335 0393 ;# |
336 0394 ;# |
337 0395 ;# |
338 0396 ;# |
339 039A ;# |
340 039C ;# |
341 039D ;# |
342 039E ;# |
343 039F ;# |
344 0415 ;# |
345 0416 ;# |
346 0417 ;# |
347 041C ;# |
348 041D ;# |
349 041E ;# |
350 0FE4 ;# |
351 0FE5 ;# |
352 0FE6 ;# |
353 0FE7 ;# |
354 0FE8 ;# |
355 0FE9 ;# |
356 0FEA ;# |
357 0FEB ;# |
358 0FED ;# |
359 0FEE ;# |
360 0FEF ;# |
361 0000 ;# |
362 0001 ;# |
363 0002 ;# |
364 0003 ;# |
365 0004 ;# |
366 0005 ;# |
367 0006 ;# |
368 0007 ;# |
369 0008 ;# |
370 0009 ;# |
371 000A ;# |
372 000B ;# |
373 000C ;# |
374 000D ;# |
375 000E ;# |
376 0011 ;# |
377 0012 ;# |
378 0013 ;# |
379 0014 ;# |
380 0015 ;# |
381 0016 ;# |
382 0016 ;# |
383 0017 ;# |
384 0018 ;# |
385 0019 ;# |
386 001A ;# |
387 001B ;# |
388 001C ;# |
389 001E ;# |
390 001F ;# |
391 008C ;# |
392 008D ;# |
393 008E ;# |
394 0091 ;# |
395 0092 ;# |
396 0093 ;# |
397 0094 ;# |
398 0095 ;# |
399 0096 ;# |
400 0097 ;# |
401 0098 ;# |
402 0099 ;# |
403 009A ;# |
404 009B ;# |
405 009B ;# |
406 009C ;# |
407 009D ;# |
408 009E ;# |
409 010C ;# |
410 010D ;# |
411 010E ;# |
412 0111 ;# |
413 0112 ;# |
414 0113 ;# |
415 0114 ;# |
416 0115 ;# |
417 0116 ;# |
418 0117 ;# |
419 0118 ;# |
420 0119 ;# |
421 011A ;# |
422 011B ;# |
423 011D ;# |
424 011E ;# |
425 018C ;# |
426 018D ;# |
427 018E ;# |
428 0191 ;# |
429 0191 ;# |
430 0192 ;# |
431 0193 ;# |
432 0193 ;# |
433 0193 ;# |
434 0194 ;# |
435 0195 ;# |
436 0196 ;# |
437 0199 ;# |
438 019A ;# |
439 019B ;# |
440 019B ;# |
441 019C ;# |
442 019D ;# |
443 019E ;# |
444 019F ;# |
445 020C ;# |
446 020D ;# |
447 020E ;# |
448 0211 ;# |
449 0211 ;# |
450 0212 ;# |
451 0212 ;# |
452 0213 ;# |
453 0213 ;# |
454 0214 ;# |
455 0214 ;# |
456 0215 ;# |
457 0215 ;# |
458 0215 ;# |
459 0216 ;# |
460 0216 ;# |
461 0217 ;# |
462 0217 ;# |
463 0219 ;# |
464 021A ;# |
465 021B ;# |
466 021C ;# |
467 021D ;# |
468 021E ;# |
469 021F ;# |
470 0291 ;# |
471 0292 ;# |
472 0293 ;# |
473 0294 ;# |
474 0295 ;# |
475 0295 ;# |
476 0296 ;# |
477 0298 ;# |
478 0299 ;# |
479 029A ;# |
480 029B ;# |
481 029C ;# |
482 029D ;# |
483 029E ;# |
484 0311 ;# |
485 0312 ;# |
486 0313 ;# |
487 0318 ;# |
488 0319 ;# |
489 031A ;# |
490 038C ;# |
491 038D ;# |
492 038E ;# |
493 0391 ;# |
494 0392 ;# |
495 0393 ;# |
496 0394 ;# |
497 0395 ;# |
498 0396 ;# |
499 039A ;# |
500 039C ;# |
501 039D ;# |
502 039E ;# |
503 039F ;# |
504 0415 ;# |
505 0416 ;# |
506 0417 ;# |
507 041C ;# |
508 041D ;# |
509 041E ;# |
510 0FE4 ;# |
511 0FE5 ;# |
512 0FE6 ;# |
513 0FE7 ;# |
514 0FE8 ;# |
515 0FE9 ;# |
516 0FEA ;# |
517 0FEB ;# |
518 0FED ;# |
519 0FEE ;# |
520 0FEF ;# |
521 0000 ;# |
522 0001 ;# |
523 0002 ;# |
524 0003 ;# |
525 0004 ;# |
526 0005 ;# |
527 0006 ;# |
528 0007 ;# |
529 0008 ;# |
530 0009 ;# |
531 000A ;# |
532 000B ;# |
533 000C ;# |
534 000D ;# |
535 000E ;# |
536 0011 ;# |
537 0012 ;# |
538 0013 ;# |
539 0014 ;# |
540 0015 ;# |
541 0016 ;# |
542 0016 ;# |
543 0017 ;# |
544 0018 ;# |
545 0019 ;# |
546 001A ;# |
547 001B ;# |
548 001C ;# |
549 001E ;# |
550 001F ;# |
551 008C ;# |
552 008D ;# |
553 008E ;# |
554 0091 ;# |
555 0092 ;# |
556 0093 ;# |
557 0094 ;# |
558 0095 ;# |
559 0096 ;# |
560 0097 ;# |
561 0098 ;# |
562 0099 ;# |
563 009A ;# |
564 009B ;# |
565 009B ;# |
566 009C ;# |
567 009D ;# |
568 009E ;# |
569 010C ;# |
570 010D ;# |
571 010E ;# |
572 0111 ;# |
573 0112 ;# |
574 0113 ;# |
575 0114 ;# |
576 0115 ;# |
577 0116 ;# |
578 0117 ;# |
579 0118 ;# |
580 0119 ;# |
581 011A ;# |
582 011B ;# |
583 011D ;# |
584 011E ;# |
585 018C ;# |
586 018D ;# |
587 018E ;# |
588 0191 ;# |
589 0191 ;# |
590 0192 ;# |
591 0193 ;# |
592 0193 ;# |
593 0193 ;# |
594 0194 ;# |
595 0195 ;# |
596 0196 ;# |
597 0199 ;# |
598 019A ;# |
599 019B ;# |
600 019B ;# |
601 019C ;# |
602 019D ;# |
603 019E ;# |
604 019F ;# |
605 020C ;# |
606 020D ;# |
607 020E ;# |
608 0211 ;# |
609 0211 ;# |
610 0212 ;# |
611 0212 ;# |
612 0213 ;# |
613 0213 ;# |
614 0214 ;# |
615 0214 ;# |
616 0215 ;# |
617 0215 ;# |
618 0215 ;# |
619 0216 ;# |
620 0216 ;# |
621 0217 ;# |
622 0217 ;# |
623 0219 ;# |
624 021A ;# |
625 021B ;# |
626 021C ;# |
627 021D ;# |
628 021E ;# |
629 021F ;# |
630 0291 ;# |
631 0292 ;# |
632 0293 ;# |
633 0294 ;# |
634 0295 ;# |
635 0295 ;# |
636 0296 ;# |
637 0298 ;# |
638 0299 ;# |
639 029A ;# |
640 029B ;# |
641 029C ;# |
642 029D ;# |
643 029E ;# |
644 0311 ;# |
645 0312 ;# |
646 0313 ;# |
647 0318 ;# |
648 0319 ;# |
649 031A ;# |
650 038C ;# |
651 038D ;# |
652 038E ;# |
653 0391 ;# |
654 0392 ;# |
655 0393 ;# |
656 0394 ;# |
657 0395 ;# |
658 0396 ;# |
659 039A ;# |
660 039C ;# |
661 039D ;# |
662 039E ;# |
663 039F ;# |
664 0415 ;# |
665 0416 ;# |
666 0417 ;# |
667 041C ;# |
668 041D ;# |
669 041E ;# |
670 0FE4 ;# |
671 0FE5 ;# |
672 0FE6 ;# |
673 0FE7 ;# |
674 0FE8 ;# |
675 0FE9 ;# |
676 0FEA ;# |
677 0FEB ;# |
678 0FED ;# |
679 0FEE ;# |
680 0FEF ;# |
681 0000 ;# |
682 0001 ;# |
683 0002 ;# |
684 0003 ;# |
685 0004 ;# |
686 0005 ;# |
687 0006 ;# |
688 0007 ;# |
689 0008 ;# |
690 0009 ;# |
691 000A ;# |
692 000B ;# |
693 000C ;# |
694 000D ;# |
695 000E ;# |
696 0011 ;# |
697 0012 ;# |
698 0013 ;# |
699 0014 ;# |
700 0015 ;# |
701 0016 ;# |
702 0016 ;# |
703 0017 ;# |
704 0018 ;# |
705 0019 ;# |
706 001A ;# |
707 001B ;# |
708 001C ;# |
709 001E ;# |
710 001F ;# |
711 008C ;# |
712 008D ;# |
713 008E ;# |
714 0091 ;# |
715 0092 ;# |
716 0093 ;# |
717 0094 ;# |
718 0095 ;# |
719 0096 ;# |
720 0097 ;# |
721 0098 ;# |
722 0099 ;# |
723 009A ;# |
724 009B ;# |
725 009B ;# |
726 009C ;# |
727 009D ;# |
728 009E ;# |
729 010C ;# |
730 010D ;# |
731 010E ;# |
732 0111 ;# |
733 0112 ;# |
734 0113 ;# |
735 0114 ;# |
736 0115 ;# |
737 0116 ;# |
738 0117 ;# |
739 0118 ;# |
740 0119 ;# |
741 011A ;# |
742 011B ;# |
743 011D ;# |
744 011E ;# |
745 018C ;# |
746 018D ;# |
747 018E ;# |
748 0191 ;# |
749 0191 ;# |
750 0192 ;# |
751 0193 ;# |
752 0193 ;# |
753 0193 ;# |
754 0194 ;# |
755 0195 ;# |
756 0196 ;# |
757 0199 ;# |
758 019A ;# |
759 019B ;# |
760 019B ;# |
761 019C ;# |
762 019D ;# |
763 019E ;# |
764 019F ;# |
765 020C ;# |
766 020D ;# |
767 020E ;# |
768 0211 ;# |
769 0211 ;# |
770 0212 ;# |
771 0212 ;# |
772 0213 ;# |
773 0213 ;# |
774 0214 ;# |
775 0214 ;# |
776 0215 ;# |
777 0215 ;# |
778 0215 ;# |
779 0216 ;# |
780 0216 ;# |
781 0217 ;# |
782 0217 ;# |
783 0219 ;# |
784 021A ;# |
785 021B ;# |
786 021C ;# |
787 021D ;# |
788 021E ;# |
789 021F ;# |
790 0291 ;# |
791 0292 ;# |
792 0293 ;# |
793 0294 ;# |
794 0295 ;# |
795 0295 ;# |
796 0296 ;# |
797 0298 ;# |
798 0299 ;# |
799 029A ;# |
800 029B ;# |
801 029C ;# |
802 029D ;# |
803 029E ;# |
804 0311 ;# |
805 0312 ;# |
806 0313 ;# |
807 0318 ;# |
808 0319 ;# |
809 031A ;# |
810 038C ;# |
811 038D ;# |
812 038E ;# |
813 0391 ;# |
814 0392 ;# |
815 0393 ;# |
816 0394 ;# |
817 0395 ;# |
818 0396 ;# |
819 039A ;# |
820 039C ;# |
821 039D ;# |
822 039E ;# |
823 039F ;# |
824 0415 ;# |
825 0416 ;# |
826 0417 ;# |
827 041C ;# |
828 041D ;# |
829 041E ;# |
830 0FE4 ;# |
831 0FE5 ;# |
832 0FE6 ;# |
833 0FE7 ;# |
834 0FE8 ;# |
835 0FE9 ;# |
836 0FEA ;# |
837 0FEB ;# |
838 0FED ;# |
839 0FEE ;# |
840 0FEF ;# |
841 0000 ;# |
842 0001 ;# |
843 0002 ;# |
844 0003 ;# |
845 0004 ;# |
846 0005 ;# |
847 0006 ;# |
848 0007 ;# |
849 0008 ;# |
850 0009 ;# |
851 000A ;# |
852 000B ;# |
853 000C ;# |
854 000D ;# |
855 000E ;# |
856 0011 ;# |
857 0012 ;# |
858 0013 ;# |
859 0014 ;# |
860 0015 ;# |
861 0016 ;# |
862 0016 ;# |
863 0017 ;# |
864 0018 ;# |
865 0019 ;# |
866 001A ;# |
867 001B ;# |
868 001C ;# |
869 001E ;# |
870 001F ;# |
871 008C ;# |
872 008D ;# |
873 008E ;# |
874 0091 ;# |
875 0092 ;# |
876 0093 ;# |
877 0094 ;# |
878 0095 ;# |
879 0096 ;# |
880 0097 ;# |
881 0098 ;# |
882 0099 ;# |
883 009A ;# |
884 009B ;# |
885 009B ;# |
886 009C ;# |
887 009D ;# |
888 009E ;# |
889 010C ;# |
890 010D ;# |
891 010E ;# |
892 0111 ;# |
893 0112 ;# |
894 0113 ;# |
895 0114 ;# |
896 0115 ;# |
897 0116 ;# |
898 0117 ;# |
899 0118 ;# |
900 0119 ;# |
901 011A ;# |
902 011B ;# |
903 011D ;# |
904 011E ;# |
905 018C ;# |
906 018D ;# |
907 018E ;# |
908 0191 ;# |
909 0191 ;# |
910 0192 ;# |
911 0193 ;# |
912 0193 ;# |
913 0193 ;# |
914 0194 ;# |
915 0195 ;# |
916 0196 ;# |
917 0199 ;# |
918 019A ;# |
919 019B ;# |
920 019B ;# |
921 019C ;# |
922 019D ;# |
923 019E ;# |
924 019F ;# |
925 020C ;# |
926 020D ;# |
927 020E ;# |
928 0211 ;# |
929 0211 ;# |
930 0212 ;# |
931 0212 ;# |
932 0213 ;# |
933 0213 ;# |
934 0214 ;# |
935 0214 ;# |
936 0215 ;# |
937 0215 ;# |
938 0215 ;# |
939 0216 ;# |
940 0216 ;# |
941 0217 ;# |
942 0217 ;# |
943 0219 ;# |
944 021A ;# |
945 021B ;# |
946 021C ;# |
947 021D ;# |
948 021E ;# |
949 021F ;# |
950 0291 ;# |
951 0292 ;# |
952 0293 ;# |
953 0294 ;# |
954 0295 ;# |
955 0295 ;# |
956 0296 ;# |
957 0298 ;# |
958 0299 ;# |
959 029A ;# |
960 029B ;# |
961 029C ;# |
962 029D ;# |
963 029E ;# |
964 0311 ;# |
965 0312 ;# |
966 0313 ;# |
967 0318 ;# |
968 0319 ;# |
969 031A ;# |
970 038C ;# |
971 038D ;# |
972 038E ;# |
973 0391 ;# |
974 0392 ;# |
975 0393 ;# |
976 0394 ;# |
977 0395 ;# |
978 0396 ;# |
979 039A ;# |
980 039C ;# |
981 039D ;# |
982 039E ;# |
983 039F ;# |
984 0415 ;# |
985 0416 ;# |
986 0417 ;# |
987 041C ;# |
988 041D ;# |
989 041E ;# |
990 0FE4 ;# |
991 0FE5 ;# |
992 0FE6 ;# |
993 0FE7 ;# |
994 0FE8 ;# |
995 0FE9 ;# |
996 0FEA ;# |
997 0FEB ;# |
998 0FED ;# |
999 0FEE ;# |
1000 0FEF ;# |
1001 |
1002 psect idataBANK0 |
1003 0BB3 __pidataBANK0: |
1004 |
1005 ;initializer for main@F3130 |
1006 0BB3 3400 retlw 0 |
1007 0BB4 3400 retlw 0 |
1008 0BB5 3400 retlw 0 |
1009 0BB6 3400 retlw 0 |
1010 0BB7 3400 retlw 0 |
1011 0BB8 3400 retlw 0 |
1012 0BB9 3400 retlw 0 |
1013 0BBA 3400 retlw 0 |
1014 0BBB 3410 retlw 16 |
1015 0BBC 3410 retlw 16 |
1016 0BBD 3410 retlw 16 |
1017 0BBE 3410 retlw 16 |
1018 0BBF 3410 retlw 16 |
1019 0BC0 3410 retlw 16 |
1020 0BC1 3410 retlw 16 |
1021 0BC2 3410 retlw 16 |
1022 |
1023 ;initializer for MCP23009_Query@F3053 |
1024 0BC3 3409 retlw 9 |
1025 0BC4 3400 retlw 0 |
1026 |
1027 psect nvCOMMON |
1028 0079 __pnvCOMMON: |
1029 0079 _i2c_data_p: |
1030 0079 ds 1 |
1031 |
1032 psect nvBANK0 |
1033 0069 __pnvBANK0: |
1034 0069 I2C2@i2c_data_p: |
1035 0069 ds 1 |
1036 000B _INTCONbits set 11 |
1037 0011 _PIR1bits set 17 |
1038 0014 _PIR4bits set 20 |
1039 0095 _OPTION_REGbits set 149 |
1040 0099 _OSCCONbits set 153 |
1041 0091 _PIE1bits set 145 |
1042 0094 _PIE4bits set 148 |
1043 008C _TRISAbits set 140 |
1044 008D _TRISBbits set 141 |
1045 008E _TRISCbits set 142 |
1046 010E _LATCbits set 270 |
1047 018C _ANSELA set 396 |
1048 018D _ANSELB set 397 |
1049 018E _ANSELC set 398 |
1050 0212 _SSP1ADD set 530 |
1051 0211 _SSP1BUF set 529 |
1052 0215 _SSP1CON1 set 533 |
1053 0215 _SSP1CON1bits set 533 |
1054 0216 _SSP1CON2 set 534 |
1055 0216 _SSP1CON2bits set 534 |
1056 0214 _SSP1STAT set 532 |
1057 0214 _SSP1STATbits set 532 |
1058 021A _SSP2ADD set 538 |
1059 0219 _SSP2BUF set 537 |
1060 021D _SSP2CON1 set 541 |
1061 021D _SSP2CON1bits set 541 |
1062 021E _SSP2CON2 set 542 |
1063 021E _SSP2CON2bits set 542 |
1064 021C _SSP2STAT set 540 |
1065 021C _SSP2STATbits set 540 |
1066 0212 _SSPADD set 530 |
1067 020E _WPUCbits set 526 |
1068 |
1069 ; #config settings |
1070 0000 |
1071 psect cinit |
1072 0BA5 start_initialization: |
1073 0BA5 __initialization: |
1074 |
1075 ; Initialize objects allocated to BANK0 |
1076 0BA5 30B3 movlw low __pidataBANK0 |
1077 0BA6 0084 movwf 4 |
1078 0BA7 308B movlw (high __pidataBANK0)| (0+128) |
1079 0BA8 0085 movwf 5 |
1080 0BA9 3057 movlw low __pdataBANK0 |
1081 0BAA 0086 movwf 6 |
1082 0BAB 3000 movlw high __pdataBANK0 |
1083 0BAC 0087 movwf 7 |
1084 0BAD 3012 movlw 18 |
1085 0BAE 318B 238B fcall init_ram |
1086 0BB0 end_of_initialization: |
1087 ;End of C runtime variable initialization code |
1088 |
1089 0BB0 __end_of__initialization: |
1090 0BB0 0020 movlb 0 |
1091 0BB1 3186 2EDC ljmp _main ;jump to C main() function |
1092 |
1093 psect dataBANK0 |
1094 0057 __pdataBANK0: |
1095 0057 main@F3130: |
1096 0057 ds 16 |
1097 0067 MCP23009_Query@F3053: |
1098 0067 ds 2 |
1099 |
1100 psect inittext |
1101 0B8B init_ram: |
1102 0B8B 00FE movwf 126 |
1103 0B8C initloop: |
1104 0B8C 0012 moviw fsr0++ |
1105 0B8D 001E movwi fsr1++ |
1106 0B8E 0BFE decfsz 126,f |
1107 0B8F 2B8C goto initloop |
1108 0B90 3400 retlw 0 |
1109 |
1110 psect cstackBANK2 |
1111 0120 __pcstackBANK2: |
1112 0120 main@i2c2_data: |
1113 |
1114 ; 77 bytes @ 0x0 |
1115 0120 ds 77 |
1116 |
1117 psect cstackBANK1 |
1118 00A0 __pcstackBANK1: |
1119 00A0 main@i2c1_data: |
1120 |
1121 ; 77 bytes @ 0x0 |
1122 00A0 ds 77 |
1123 |
1124 psect cstackCOMMON |
1125 0070 __pcstackCOMMON: |
1126 0070 ?_I2C1_Init: |
1127 0070 ?_I2C1_Configure_Slave: |
1128 ; 0 bytes @ 0x0 |
1129 |
1130 0070 ?_I2C2_Init: |
1131 ; 0 bytes @ 0x0 |
1132 |
1133 0070 ?_I2C2_Configure_Master: |
1134 ; 0 bytes @ 0x0 |
1135 |
1136 0070 ?_Interrupt_Init: |
1137 ; 0 bytes @ 0x0 |
1138 |
1139 0070 ?_Interrupt_Enable: |
1140 ; 0 bytes @ 0x0 |
1141 |
1142 0070 ?_TLC59116_Init: |
1143 ; 0 bytes @ 0x0 |
1144 |
1145 0070 ?_TLC59116_Write_All: |
1146 ; 0 bytes @ 0x0 |
1147 |
1148 0070 ?_MCP23009_Init: |
1149 ; 0 bytes @ 0x0 |
1150 |
1151 0070 ?_I2C1_Interrupt_Master: |
1152 ; 0 bytes @ 0x0 |
1153 |
1154 0070 ??_I2C1_Interrupt_Master: |
1155 ; 0 bytes @ 0x0 |
1156 |
1157 0070 ?_I2C1_Interrupt_Slave: |
1158 ; 0 bytes @ 0x0 |
1159 |
1160 0070 ??_I2C1_Process_Receive: |
1161 ; 0 bytes @ 0x0 |
1162 |
1163 0070 ?_I2C2_Interrupt_Handler: |
1164 ; 0 bytes @ 0x0 |
1165 |
1166 0070 ?_I2C2_Interrupt_Master: |
1167 ; 0 bytes @ 0x0 |
1168 |
1169 0070 ??_I2C2_Interrupt_Master: |
1170 ; 0 bytes @ 0x0 |
1171 |
1172 0070 ?_I2C2_Interrupt_Slave: |
1173 ; 0 bytes @ 0x0 |
1174 |
1175 0070 ??_I2C2_Process_Receive: |
1176 ; 0 bytes @ 0x0 |
1177 |
1178 0070 ?_Pins_Init: |
1179 ; 0 bytes @ 0x0 |
1180 |
1181 0070 ?_I2C1_Interrupt_Handler: |
1182 ; 0 bytes @ 0x0 |
1183 |
1184 0070 ?_InterruptHandler: |
1185 ; 0 bytes @ 0x0 |
1186 |
1187 0070 ?_MCP23009_Query: |
1188 ; 0 bytes @ 0x0 |
1189 |
1190 0070 ?_I2C1_Process_Receive: |
1191 ; 1 bytes @ 0x0 |
1192 |
1193 0070 ?_I2C2_Process_Receive: |
1194 ; 1 bytes @ 0x0 |
1195 |
1196 0070 ?_Read_Address: |
1197 ; 1 bytes @ 0x0 |
1198 |
1199 0070 ?_I2C2_Get_Status: |
1200 ; 1 bytes @ 0x0 |
1201 |
1202 0070 ?_I2C2_Read_Buffer: |
1203 ; 1 bytes @ 0x0 |
1204 |
1205 0070 ?_main: |
1206 ; 1 bytes @ 0x0 |
1207 |
1208 0070 I2C1_Process_Receive@c: |
1209 ; 2 bytes @ 0x0 |
1210 |
1211 0070 I2C2_Process_Receive@c: |
1212 ; 1 bytes @ 0x0 |
1213 |
1214 |
1215 ; 1 bytes @ 0x0 |
1216 0070 ds 1 |
1217 0071 I2C1_Process_Receive@ret: |
1218 0071 I2C2_Process_Receive@ret: |
1219 ; 1 bytes @ 0x1 |
1220 |
1221 |
1222 ; 1 bytes @ 0x1 |
1223 0071 ds 1 |
1224 0072 ??_I2C1_Interrupt_Slave: |
1225 0072 ??_I2C2_Interrupt_Slave: |
1226 ; 0 bytes @ 0x2 |
1227 |
1228 0072 I2C1_Interrupt_Master@tmp: |
1229 ; 0 bytes @ 0x2 |
1230 |
1231 0072 I2C2_Interrupt_Master@tmp: |
1232 ; 1 bytes @ 0x2 |
1233 |
1234 |
1235 ; 1 bytes @ 0x2 |
1236 0072 ds 1 |
1237 0073 I2C1_Interrupt_Master@tmp_611: |
1238 0073 I2C2_Interrupt_Master@tmp_923: |
1239 ; 1 bytes @ 0x3 |
1240 |
1241 |
1242 ; 1 bytes @ 0x3 |
1243 0073 ds 1 |
1244 0074 I2C1_Interrupt_Slave@overrun_error: |
1245 0074 I2C2_Interrupt_Slave@overrun_error: |
1246 ; 1 bytes @ 0x4 |
1247 |
1248 |
1249 ; 1 bytes @ 0x4 |
1250 0074 ds 1 |
1251 0075 I2C1_Interrupt_Slave@data_written_to_buffer: |
1252 0075 I2C2_Interrupt_Slave@data_written_to_buffer: |
1253 ; 1 bytes @ 0x5 |
1254 |
1255 |
1256 ; 1 bytes @ 0x5 |
1257 0075 ds 1 |
1258 0076 I2C1_Interrupt_Slave@received_data: |
1259 0076 I2C2_Interrupt_Slave@received_data: |
1260 ; 1 bytes @ 0x6 |
1261 |
1262 |
1263 ; 1 bytes @ 0x6 |
1264 0076 ds 1 |
1265 0077 I2C1_Interrupt_Slave@data_read_from_buffer: |
1266 0077 I2C2_Interrupt_Slave@data_read_from_buffer: |
1267 ; 1 bytes @ 0x7 |
1268 |
1269 |
1270 ; 1 bytes @ 0x7 |
1271 0077 ds 1 |
1272 0078 ??_I2C2_Interrupt_Handler: |
1273 0078 ??_I2C1_Interrupt_Handler: |
1274 ; 0 bytes @ 0x8 |
1275 |
1276 0078 ??_InterruptHandler: |
1277 ; 0 bytes @ 0x8 |
1278 |
1279 |
1280 ; 0 bytes @ 0x8 |
1281 0078 ds 1 |
1282 |
1283 psect cstackBANK0 |
1284 0020 __pcstackBANK0: |
1285 0020 ??_I2C1_Init: |
1286 0020 ??_I2C1_Configure_Slave: |
1287 ; 0 bytes @ 0x0 |
1288 |
1289 0020 ??_I2C2_Init: |
1290 ; 0 bytes @ 0x0 |
1291 |
1292 0020 ??_I2C2_Configure_Master: |
1293 ; 0 bytes @ 0x0 |
1294 |
1295 0020 ??_Interrupt_Init: |
1296 ; 0 bytes @ 0x0 |
1297 |
1298 0020 ??_Interrupt_Enable: |
1299 ; 0 bytes @ 0x0 |
1300 |
1301 0020 ??_Pins_Init: |
1302 ; 0 bytes @ 0x0 |
1303 |
1304 0020 ??_Read_Address: |
1305 ; 0 bytes @ 0x0 |
1306 |
1307 0020 ?_I2C2_Master_Send: |
1308 ; 0 bytes @ 0x0 |
1309 |
1310 0020 ?_I2C2_Master_Recv: |
1311 ; 0 bytes @ 0x0 |
1312 |
1313 0020 ??_I2C2_Get_Status: |
1314 ; 0 bytes @ 0x0 |
1315 |
1316 0020 ??_I2C2_Read_Buffer: |
1317 ; 0 bytes @ 0x0 |
1318 |
1319 0020 I2C2_Master_Send@length: |
1320 ; 0 bytes @ 0x0 |
1321 |
1322 0020 I2C2_Master_Recv@length: |
1323 ; 1 bytes @ 0x0 |
1324 |
1325 |
1326 ; 1 bytes @ 0x0 |
1327 0020 ds 1 |
1328 0021 ??_I2C2_Master_Recv: |
1329 0021 I2C1_Init@data: |
1330 ; 0 bytes @ 0x1 |
1331 |
1332 0021 I2C1_Configure_Slave@addr: |
1333 ; 1 bytes @ 0x1 |
1334 |
1335 0021 I2C2_Init@data: |
1336 ; 1 bytes @ 0x1 |
1337 |
1338 0021 I2C2_Configure_Master@speed: |
1339 ; 1 bytes @ 0x1 |
1340 |
1341 0021 I2C2_Master_Send@msg: |
1342 ; 1 bytes @ 0x1 |
1343 |
1344 |
1345 ; 1 bytes @ 0x1 |
1346 0021 ds 1 |
1347 0022 ??_I2C2_Master_Send: |
1348 0022 I2C2_Master_Recv@address: |
1349 ; 0 bytes @ 0x2 |
1350 |
1351 |
1352 ; 1 bytes @ 0x2 |
1353 0022 ds 1 |
1354 0023 Read_Address@ret: |
1355 0023 I2C2_Read_Buffer@buffer: |
1356 ; 1 bytes @ 0x3 |
1357 |
1358 |
1359 ; 1 bytes @ 0x3 |
1360 0023 ds 1 |
1361 0024 I2C2_Read_Buffer@i: |
1362 |
1363 ; 1 bytes @ 0x4 |
1364 0024 ds 1 |
1365 0025 I2C2_Master_Send@address: |
1366 |
1367 ; 1 bytes @ 0x5 |
1368 0025 ds 1 |
1369 0026 I2C2_Master_Send@i: |
1370 |
1371 ; 1 bytes @ 0x6 |
1372 0026 ds 1 |
1373 0027 ??_TLC59116_Init: |
1374 0027 ??_TLC59116_Write_All: |
1375 ; 0 bytes @ 0x7 |
1376 |
1377 0027 ??_MCP23009_Init: |
1378 ; 0 bytes @ 0x7 |
1379 |
1380 0027 ??_MCP23009_Query: |
1381 ; 0 bytes @ 0x7 |
1382 |
1383 |
1384 ; 0 bytes @ 0x7 |
1385 0027 ds 1 |
1386 0028 MCP23009_Query@buffer: |
1387 |
1388 ; 2 bytes @ 0x8 |
1389 0028 ds 1 |
1390 0029 MCP23009_Init@buffer: |
1391 0029 TLC59116_Write_All@buffer: |
1392 ; 8 bytes @ 0x9 |
1393 |
1394 0029 TLC59116_Init@buffer: |
1395 ; 17 bytes @ 0x9 |
1396 |
1397 |
1398 ; 25 bytes @ 0x9 |
1399 0029 ds 1 |
1400 002A MCP23009_Query@result: |
1401 |
1402 ; 1 bytes @ 0xA |
1403 002A ds 7 |
1404 0031 MCP23009_Init@result: |
1405 |
1406 ; 1 bytes @ 0x11 |
1407 0031 ds 9 |
1408 003A TLC59116_Write_All@result: |
1409 |
1410 ; 1 bytes @ 0x1A |
1411 003A ds 1 |
1412 003B TLC59116_Write_All@values: |
1413 |
1414 ; 1 bytes @ 0x1B |
1415 003B ds 7 |
1416 0042 TLC59116_Init@result: |
1417 |
1418 ; 1 bytes @ 0x22 |
1419 0042 ds 1 |
1420 0043 ??_main: |
1421 |
1422 ; 0 bytes @ 0x23 |
1423 0043 ds 1 |
1424 0044 main@leds: |
1425 |
1426 ; 16 bytes @ 0x24 |
1427 0044 ds 16 |
1428 0054 main@i2c_slave_addr: |
1429 |
1430 ; 1 bytes @ 0x34 |
1431 0054 ds 1 |
1432 0055 main@btn_value: |
1433 |
1434 ; 1 bytes @ 0x35 |
1435 0055 ds 1 |
1436 0056 main@i: |
1437 |
1438 ; 1 bytes @ 0x36 |
1439 0056 ds 1 |
1440 |
1441 psect maintext |
1442 06DC __pmaintext: |
1443 ;; |
1444 ;;Main: autosize = 0, tempsize = 1, incstack = 0, save=0 |
1445 ;; |
1446 ;; *************** function _main ***************** |
1447 ;; Defined at: |
1448 ;; line 87 in file "main.c" |
1449 ;; Parameters: Size Location Type |
1450 ;; None |
1451 ;; Auto vars: Size Location Type |
1452 ;; i 1 54[BANK0 ] unsigned char |
1453 ;; btn_value 1 53[BANK0 ] unsigned char |
1454 ;; i2c2_data 77 0[BANK2 ] struct . |
1455 ;; i2c1_data 77 0[BANK1 ] struct . |
1456 ;; buffer 32 0 unsigned char [32] |
1457 ;; leds 16 36[BANK0 ] unsigned char [16] |
1458 ;; i2c_slave_ad 1 52[BANK0 ] unsigned char |
1459 ;; length 1 0 unsigned char |
1460 ;; result 1 0 unsigned char |
1461 ;; Return value: Size Location Type |
1462 ;; 2 54[COMMON] int |
1463 ;; Registers used: |
1464 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, fsr1l, fsr1h, status,2, status,0, btemp+1, pclath, cstack |
1465 ;; Tracked objects: |
1466 ;; On entry : 17F/0 |
1467 ;; On exit : 0/0 |
1468 ;; Unchanged: 0/0 |
1469 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
1470 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1471 ;; Locals: 0 19 77 77 0 0 0 0 0 0 0 0 |
+0 0 |
1472 ;; Temps: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1473 ;; Totals: 0 20 77 77 0 0 0 0 0 0 0 0 |
+0 0 |
1474 ;;Total ram usage: 174 bytes |
1475 ;; Hardware stack levels required when called: 6 |
1476 ;; This function calls: |
1477 ;; _Pins_Init |
1478 ;; _Read_Address |
1479 ;; _I2C1_Init |
1480 ;; _I2C1_Configure_Slave |
1481 ;; _I2C2_Init |
1482 ;; _I2C2_Configure_Master |
1483 ;; _Interrupt_Init |
1484 ;; _Interrupt_Enable |
1485 ;; _TLC59116_Init |
1486 ;; _TLC59116_Write_All |
1487 ;; _MCP23009_Init |
1488 ;; _MCP23009_Query |
1489 ;; This function is called by: |
1490 ;; Startup code after reset |
1491 ;; This function uses a non-reentrant model |
1492 ;; |
1493 |
1494 |
1495 ;psect for function _main |
1496 06DC _main: |
1497 |
1498 ;main.c: 88: uint8_t buffer[32]; |
1499 ;main.c: 89: uint8_t result, length; |
1500 ;main.c: 90: uint8_t i2c_slave_addr; |
1501 ;main.c: 93: OSCCONbits.SPLLEN = 1; |
1502 |
1503 ;incstack = 0 |
1504 ; Regs used in _main: [allreg] |
1505 06DC 0021 movlb 1 ; select bank1 |
1506 06DD 1799 bsf 25,7 ;volatile |
1507 |
1508 ;main.c: 94: OSCCONbits.IRCF = 0xE; |
1509 06DE 0819 movf 25,w ;volatile |
1510 06DF 3987 andlw -121 |
1511 06E0 3870 iorlw 112 |
1512 06E1 0099 movwf 25 ;volatile |
1513 |
1514 ;main.c: 95: OSCCONbits.SCS = 0b00; |
1515 06E2 30FC movlw -4 |
1516 06E3 0599 andwf 25,f ;volatile |
1517 |
1518 ;main.c: 102: Pins_Init(); |
1519 06E4 318B 23F5 3186 fcall _Pins_Init |
1520 |
1521 ;main.c: 104: i2c_slave_addr = Read_Address(); |
1522 06E7 318C 24A7 3186 fcall _Read_Address |
1523 06EA 0020 movlb 0 ; select bank0 |
1524 06EB 00C3 movwf ??_main |
1525 06EC 0843 movf ??_main,w |
1526 06ED 00D4 movwf main@i2c_slave_addr |
1527 |
1528 ;main.c: 107: I2C1_DATA i2c1_data; |
1529 ;main.c: 108: I2C1_Init(&i2c1_data); |
1530 06EE 30A0 movlw main@i2c1_data& (0+255) |
1531 06EF 318D 259E 3186 fcall _I2C1_Init |
1532 |
1533 ;main.c: 109: I2C1_Configure_Slave(i2c_slave_addr); |
1534 06F2 0020 movlb 0 ; select bank0 |
1535 06F3 0854 movf main@i2c_slave_addr,w |
1536 06F4 318C 240F 3186 fcall _I2C1_Configure_Slave |
1537 |
1538 ;main.c: 112: I2C2_DATA i2c2_data; |
1539 ;main.c: 113: I2C2_Init(&i2c2_data); |
1540 06F7 3020 movlw main@i2c2_data& (0+255) |
1541 06F8 318E 263F 3186 fcall _I2C2_Init |
1542 |
1543 ;main.c: 114: I2C2_Configure_Master(0x0); |
1544 06FB 3000 movlw 0 |
1545 06FC 318C 242B 3186 fcall _I2C2_Configure_Master |
1546 |
1547 ;main.c: 117: Interrupt_Init(); |
1548 06FF 3187 27FE 3186 fcall _Interrupt_Init |
1549 |
1550 ;main.c: 118: Interrupt_Enable(); |
1551 0702 3187 27FB 3186 fcall _Interrupt_Enable |
1552 |
1553 ;main.c: 120: TLC59116_Init(); |
1554 0705 318D 2512 3186 fcall _TLC59116_Init |
1555 |
1556 ;main.c: 122: uint8_t leds[16] = {0x00, 0x00, 0x00, 0x00, |
1557 ;main.c: 123: 0x00, 0x00, 0x00, 0x00, |
1558 ;main.c: 124: 0x10, 0x10, 0x10, 0x10, |
1559 ;main.c: 125: 0x10, 0x10, 0x10, 0x10}; |
1560 0708 3057 movlw low main@F3130 |
1561 0709 0086 movwf 6 |
1562 070A 3000 movlw high main@F3130 |
1563 070B 0087 movwf 7 |
1564 070C 3044 movlw low main@leds |
1565 070D 0084 movwf 4 |
1566 070E 3000 movlw high main@leds |
1567 070F 0085 movwf 5 |
1568 0710 3010 movlw 16 |
1569 0711 00FF movwf 127 |
1570 0712 u1080: |
1571 0712 0016 moviw fsr1++ |
1572 0713 001A movwi fsr0++ |
1573 0714 0BFF decfsz 127,f |
1574 0715 2F12 goto u1080 |
1575 |
1576 ;main.c: 126: TLC59116_Write_All(leds); |
1577 0716 3044 movlw main@leds& (0+255) |
1578 0717 3187 274D 3186 fcall _TLC59116_Write_All |
1579 |
1580 ;main.c: 128: MCP23009_Init(); |
1581 071A 318C 244D 3186 fcall _MCP23009_Init |
1582 071D l2157: |
1583 ;main.c: 131: while (1) { |
1584 |
1585 |
1586 ;main.c: 132: uint8_t btn_value = MCP23009_Query(); |
1587 071D 318C 2476 3186 fcall _MCP23009_Query |
1588 0720 0020 movlb 0 ; select bank0 |
1589 0721 00C3 movwf ??_main |
1590 0722 0843 movf ??_main,w |
1591 0723 00D5 movwf main@btn_value |
1592 |
1593 ;main.c: 133: uint8_t i; |
1594 ;main.c: 134: for (i = 0; i < 8; i++) { |
1595 0724 01D6 clrf main@i |
1596 0725 3008 movlw 8 |
1597 0726 0256 subwf main@i,w |
1598 0727 1803 btfsc 3,0 |
1599 0728 2F48 goto l2175 |
1600 0729 l2165: |
1601 |
1602 ;main.c: 135: if ((btn_value >> i) & 0x1) { |
1603 0729 0855 movf main@btn_value,w |
1604 072A 00C3 movwf ??_main |
1605 072B 0A56 incf main@i,w |
1606 072C 2F2E goto u1104 |
1607 072D u1105: |
1608 072D 36C3 lsrf ??_main,f |
1609 072E u1104: |
1610 072E 0B89 decfsz 9,f |
1611 072F 2F2D goto u1105 |
1612 0730 1C43 btfss ??_main,0 |
1613 0731 2F38 goto l2169 |
1614 |
1615 ;main.c: 136: leds[i] = 0x00; |
1616 0732 0856 movf main@i,w |
1617 0733 3E44 addlw main@leds& (0+255) |
1618 0734 0086 movwf 6 |
1619 0735 0187 clrf 7 |
1620 0736 0181 clrf 1 |
1621 |
1622 ;main.c: 137: } else { |
1623 0737 2F40 goto l2171 |
1624 0738 l2169: |
1625 |
1626 ;main.c: 138: leds[i] = 0x10; |
1627 0738 3010 movlw 16 |
1628 0739 00C3 movwf ??_main |
1629 073A 0856 movf main@i,w |
1630 073B 3E44 addlw main@leds& (0+255) |
1631 073C 0086 movwf 6 |
1632 073D 0187 clrf 7 |
1633 073E 0843 movf ??_main,w |
1634 073F 0081 movwf 1 |
1635 0740 l2171: |
1636 0740 3001 movlw 1 |
1637 0741 00C3 movwf ??_main |
1638 0742 0843 movf ??_main,w |
1639 0743 07D6 addwf main@i,f |
1640 0744 3008 movlw 8 |
1641 0745 0256 subwf main@i,w |
1642 0746 1C03 skipc |
1643 0747 2F29 goto l2165 |
1644 0748 l2175: |
1645 |
1646 ;main.c: 139: } |
1647 ;main.c: 140: } |
1648 ;main.c: 141: TLC59116_Write_All(leds); |
1649 0748 3044 movlw main@leds& (0+255) |
1650 0749 3187 274D 3186 fcall _TLC59116_Write_All |
1651 074C 2F1D goto l2157 |
1652 074D __end_of_main: |
1653 |
1654 psect text1 |
1655 0C76 __ptext1: |
1656 ;; *************** function _MCP23009_Query ***************** |
1657 ;; Defined at: |
1658 ;; line 25 in file "MCP23009.c" |
1659 ;; Parameters: Size Location Type |
1660 ;; None |
1661 ;; Auto vars: Size Location Type |
1662 ;; buffer 2 8[BANK0 ] unsigned char [2] |
1663 ;; result 1 10[BANK0 ] unsigned char |
1664 ;; Return value: Size Location Type |
1665 ;; 1 wreg unsigned char |
1666 ;; Registers used: |
1667 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack |
1668 ;; Tracked objects: |
1669 ;; On entry : 0/0 |
1670 ;; On exit : 0/0 |
1671 ;; Unchanged: 0/0 |
1672 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
1673 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1674 ;; Locals: 0 3 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1675 ;; Temps: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1676 ;; Totals: 0 4 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1677 ;;Total ram usage: 4 bytes |
1678 ;; Hardware stack levels used: 1 |
1679 ;; Hardware stack levels required when called: 5 |
1680 ;; This function calls: |
1681 ;; _I2C2_Master_Send |
1682 ;; _I2C2_Master_Recv |
1683 ;; _I2C2_Get_Status |
1684 ;; _I2C2_Read_Buffer |
1685 ;; This function is called by: |
1686 ;; _main |
1687 ;; This function uses a non-reentrant model |
1688 ;; |
1689 |
1690 |
1691 ;psect for function _MCP23009_Query |
1692 0C76 _MCP23009_Query: |
1693 |
1694 ;MCP23009.c: 26: uint8_t buffer[2] = {0x09}; |
1695 |
1696 ;incstack = 0 |
1697 ; Regs used in _MCP23009_Query: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] |
1698 0C76 0020 movlb 0 ; select bank0 |
1699 0C77 0868 movf MCP23009_Query@F3053+1,w |
1700 0C78 01A9 clrf MCP23009_Query@buffer+1 |
1701 0C79 07A9 addwf MCP23009_Query@buffer+1,f |
1702 0C7A 0867 movf MCP23009_Query@F3053,w |
1703 0C7B 01A8 clrf MCP23009_Query@buffer |
1704 0C7C 07A8 addwf MCP23009_Query@buffer,f |
1705 |
1706 ;MCP23009.c: 28: I2C2_Master_Send(0x20, 1, buffer); |
1707 0C7D 01A0 clrf ?_I2C2_Master_Send |
1708 0C7E 0AA0 incf ?_I2C2_Master_Send,f |
1709 0C7F 3028 movlw MCP23009_Query@buffer& (0+255) |
1710 0C80 00A7 movwf ??_MCP23009_Query |
1711 0C81 0827 movf ??_MCP23009_Query,w |
1712 0C82 00A1 movwf ?_I2C2_Master_Send+1 |
1713 0C83 3020 movlw 32 |
1714 0C84 318D 25EC 318C fcall _I2C2_Master_Send |
1715 0C87 l2393: |
1716 ;MCP23009.c: 29: uint8_t result; |
1717 ;MCP23009.c: 30: do { |
1718 |
1719 |
1720 ;MCP23009.c: 31: result = I2C2_Get_Status(); |
1721 0C87 3187 27BD 318C fcall _I2C2_Get_Status |
1722 0C8A 0020 movlb 0 ; select bank0 |
1723 0C8B 00A7 movwf ??_MCP23009_Query |
1724 0C8C 0827 movf ??_MCP23009_Query,w |
1725 0C8D 00AA movwf MCP23009_Query@result |
1726 |
1727 ;MCP23009.c: 32: } while (!result); |
1728 0C8E 082A movf MCP23009_Query@result,w |
1729 0C8F 1903 btfsc 3,2 |
1730 0C90 2C87 goto l2393 |
1731 |
1732 ;MCP23009.c: 34: I2C2_Master_Recv(0x20, 1); |
1733 0C91 01A0 clrf ?_I2C2_Master_Recv |
1734 0C92 0AA0 incf ?_I2C2_Master_Recv,f |
1735 0C93 3020 movlw 32 |
1736 0C94 318C 24DA 318C fcall _I2C2_Master_Recv |
1737 0C97 l500: |
1738 ;MCP23009.c: 35: uint8_t result; |
1739 ;MCP23009.c: 36: do { |
1740 |
1741 |
1742 ;MCP23009.c: 37: result = I2C2_Get_Status(); |
1743 0C97 3187 27BD 318C fcall _I2C2_Get_Status |
1744 0C9A 0020 movlb 0 ; select bank0 |
1745 0C9B 00A7 movwf ??_MCP23009_Query |
1746 0C9C 0827 movf ??_MCP23009_Query,w |
1747 0C9D 00AA movwf MCP23009_Query@result |
1748 |
1749 ;MCP23009.c: 38: } while (!result); |
1750 0C9E 082A movf MCP23009_Query@result,w |
1751 0C9F 1903 btfsc 3,2 |
1752 0CA0 2C97 goto l500 |
1753 |
1754 ;MCP23009.c: 39: I2C2_Read_Buffer(buffer); |
1755 0CA1 3028 movlw MCP23009_Query@buffer& (0+255) |
1756 0CA2 318D 2558 fcall _I2C2_Read_Buffer |
1757 |
1758 ;MCP23009.c: 41: return buffer[0]; |
1759 0CA4 0020 movlb 0 ; select bank0 |
1760 0CA5 0828 movf MCP23009_Query@buffer,w |
1761 0CA6 0008 return |
1762 0CA7 __end_of_MCP23009_Query: |
1763 |
1764 psect text2 |
1765 0D58 __ptext2: |
1766 ;; *************** function _I2C2_Read_Buffer ***************** |
1767 ;; Defined at: |
1768 ;; line 506 in file "I2C2.c" |
1769 ;; Parameters: Size Location Type |
1770 ;; buffer 1 wreg PTR unsigned char |
1771 ;; -> MCP23009_Query@buffer(2), |
1772 ;; Auto vars: Size Location Type |
1773 ;; buffer 1 3[BANK0 ] PTR unsigned char |
1774 ;; -> MCP23009_Query@buffer(2), |
1775 ;; i 1 4[BANK0 ] unsigned char |
1776 ;; Return value: Size Location Type |
1777 ;; 1 wreg unsigned char |
1778 ;; Registers used: |
1779 ;; wreg, fsr1l, fsr1h, status,2, status,0 |
1780 ;; Tracked objects: |
1781 ;; On entry : 0/0 |
1782 ;; On exit : 0/0 |
1783 ;; Unchanged: 0/0 |
1784 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
1785 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1786 ;; Locals: 0 2 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1787 ;; Temps: 0 3 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1788 ;; Totals: 0 5 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1789 ;;Total ram usage: 5 bytes |
1790 ;; Hardware stack levels used: 1 |
1791 ;; Hardware stack levels required when called: 4 |
1792 ;; This function calls: |
1793 ;; Nothing |
1794 ;; This function is called by: |
1795 ;; _MCP23009_Query |
1796 ;; This function uses a non-reentrant model |
1797 ;; |
1798 |
1799 |
1800 ;psect for function _I2C2_Read_Buffer |
1801 0D58 _I2C2_Read_Buffer: |
1802 |
1803 ;incstack = 0 |
1804 ; Regs used in _I2C2_Read_Buffer: [wreg+fsr1l+fsr1h+status,2+status,0] |
1805 ;I2C2_Read_Buffer@buffer stored from wreg |
1806 0D58 0020 movlb 0 ; select bank0 |
1807 0D59 00A3 movwf I2C2_Read_Buffer@buffer |
1808 |
1809 ;I2C2.c: 507: uint8_t i = 0; |
1810 0D5A 01A4 clrf I2C2_Read_Buffer@i |
1811 0D5B l445: |
1812 ;I2C2.c: 508: while (i2c_data_p->buffer_in_len != 0) { |
1813 |
1814 0D5B 0869 movf I2C2@i2c_data_p,w |
1815 0D5C 3E20 addlw 32 |
1816 0D5D 0086 movwf 6 |
1817 0D5E 3001 movlw 1 ; select bank2/3 |
1818 0D5F 0087 movwf 7 |
1819 0D60 0881 movf 1,f |
1820 0D61 1903 btfsc 3,2 |
1821 0D62 0008 return |
1822 |
1823 ;I2C2.c: 509: buffer[i] = i2c_data_p->buffer_in[i2c_data_p->buffer_in_read_ind]; |
1824 0D63 0869 movf I2C2@i2c_data_p,w |
1825 0D64 3E22 addlw 34 |
1826 0D65 0086 movwf 6 |
1827 0D66 3001 movlw 1 ; select bank2/3 |
1828 0D67 0087 movwf 7 |
1829 0D68 0801 movf 1,w |
1830 0D69 0769 addwf I2C2@i2c_data_p,w |
1831 0D6A 00A0 movwf ??_I2C2_Read_Buffer |
1832 0D6B 0820 movf ??_I2C2_Read_Buffer,w |
1833 0D6C 0086 movwf 6 |
1834 0D6D 3001 movlw 1 ; select bank2/3 |
1835 0D6E 0087 movwf 7 |
1836 0D6F 0801 movf 1,w |
1837 0D70 00A1 movwf ??_I2C2_Read_Buffer+1 |
1838 0D71 0824 movf I2C2_Read_Buffer@i,w |
1839 0D72 0723 addwf I2C2_Read_Buffer@buffer,w |
1840 0D73 00A2 movwf ??_I2C2_Read_Buffer+2 |
1841 0D74 0822 movf ??_I2C2_Read_Buffer+2,w |
1842 0D75 0086 movwf 6 |
1843 0D76 0187 clrf 7 |
1844 0D77 0821 movf ??_I2C2_Read_Buffer+1,w |
1845 0D78 0081 movwf 1 |
1846 |
1847 ;I2C2.c: 510: i++; |
1848 0D79 3001 movlw 1 |
1849 0D7A 00A0 movwf ??_I2C2_Read_Buffer |
1850 0D7B 0820 movf ??_I2C2_Read_Buffer,w |
1851 0D7C 07A4 addwf I2C2_Read_Buffer@i,f |
1852 |
1853 ;I2C2.c: 511: if (i2c_data_p->buffer_in_read_ind == 32-1) { |
1854 0D7D 0869 movf I2C2@i2c_data_p,w |
1855 0D7E 3E22 addlw 34 |
1856 0D7F 0086 movwf 6 |
1857 0D80 3001 movlw 1 ; select bank2/3 |
1858 0D81 0087 movwf 7 |
1859 0D82 0801 movf 1,w |
1860 0D83 3A1F xorlw 31 |
1861 0D84 1D03 skipz |
1862 0D85 2D8D goto l2909 |
1863 |
1864 ;I2C2.c: 512: i2c_data_p->buffer_in_read_ind = 0; |
1865 0D86 0869 movf I2C2@i2c_data_p,w |
1866 0D87 3E22 addlw 34 |
1867 0D88 0086 movwf 6 |
1868 0D89 3001 movlw 1 ; select bank2/3 |
1869 0D8A 0087 movwf 7 |
1870 0D8B 0181 clrf 1 |
1871 |
1872 ;I2C2.c: 513: } else { |
1873 0D8C 2D96 goto l448 |
1874 0D8D l2909: |
1875 |
1876 ;I2C2.c: 514: i2c_data_p->buffer_in_read_ind++; |
1877 0D8D 3001 movlw 1 |
1878 0D8E 00A0 movwf ??_I2C2_Read_Buffer |
1879 0D8F 0869 movf I2C2@i2c_data_p,w |
1880 0D90 3E22 addlw 34 |
1881 0D91 0086 movwf 6 |
1882 0D92 3001 movlw 1 ; select bank2/3 |
1883 0D93 0087 movwf 7 |
1884 0D94 0820 movf ??_I2C2_Read_Buffer,w |
1885 0D95 0781 addwf 1,f |
1886 0D96 l448: |
1887 |
1888 ;I2C2.c: 515: } |
1889 ;I2C2.c: 516: i2c_data_p->buffer_in_len--; |
1890 0D96 0869 movf I2C2@i2c_data_p,w |
1891 0D97 3E20 addlw 32 |
1892 0D98 0086 movwf 6 |
1893 0D99 3001 movlw 1 ; select bank2/3 |
1894 0D9A 0087 movwf 7 |
1895 0D9B 3001 movlw 1 |
1896 0D9C 0281 subwf 1,f |
1897 0D9D 2D5B goto l445 |
1898 0D9E __end_of_I2C2_Read_Buffer: |
1899 ;I2C2.c: 517: } |
1900 ;I2C2.c: 518: return i; |
1901 ; Return value of _I2C2_Read_Buffer is never used |
1902 |
1903 |
1904 psect text3 |
1905 0CDA __ptext3: |
1906 ;; *************** function _I2C2_Master_Recv ***************** |
1907 ;; Defined at: |
1908 ;; line 77 in file "I2C2.c" |
1909 ;; Parameters: Size Location Type |
1910 ;; address 1 wreg unsigned char |
1911 ;; length 1 0[BANK0 ] unsigned char |
1912 ;; Auto vars: Size Location Type |
1913 ;; address 1 2[BANK0 ] unsigned char |
1914 ;; Return value: Size Location Type |
1915 ;; None void |
1916 ;; Registers used: |
1917 ;; wreg, fsr1l, fsr1h, status,2, status,0 |
1918 ;; Tracked objects: |
1919 ;; On entry : 0/0 |
1920 ;; On exit : 0/0 |
1921 ;; Unchanged: 0/0 |
1922 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
1923 ;; Params: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1924 ;; Locals: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1925 ;; Temps: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1926 ;; Totals: 0 3 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
1927 ;;Total ram usage: 3 bytes |
1928 ;; Hardware stack levels used: 1 |
1929 ;; Hardware stack levels required when called: 4 |
1930 ;; This function calls: |
1931 ;; Nothing |
1932 ;; This function is called by: |
1933 ;; _MCP23009_Query |
1934 ;; This function uses a non-reentrant model |
1935 ;; |
1936 |
1937 |
1938 ;psect for function _I2C2_Master_Recv |
1939 0CDA _I2C2_Master_Recv: |
1940 |
1941 ;incstack = 0 |
1942 ; Regs used in _I2C2_Master_Recv: [wreg+fsr1l+fsr1h+status,2+status,0] |
1943 ;I2C2_Master_Recv@address stored from wreg |
1944 0CDA 0020 movlb 0 ; select bank0 |
1945 0CDB 00A2 movwf I2C2_Master_Recv@address |
1946 |
1947 ;I2C2.c: 78: if (length == 0) |
1948 0CDC 08A0 movf I2C2_Master_Recv@length,f |
1949 0CDD 1903 btfsc 3,2 |
1950 0CDE 0008 return |
1951 |
1952 ;I2C2.c: 82: i2c_data_p->buffer_in_len = length; |
1953 |
1954 ;I2C2.c: 79: return; |
1955 0CDF 0820 movf I2C2_Master_Recv@length,w |
1956 0CE0 00A1 movwf ??_I2C2_Master_Recv |
1957 0CE1 0869 movf I2C2@i2c_data_p,w |
1958 0CE2 3E20 addlw 32 |
1959 0CE3 0086 movwf 6 |
1960 0CE4 3001 movlw 1 ; select bank2/3 |
1961 0CE5 0087 movwf 7 |
1962 0CE6 0821 movf ??_I2C2_Master_Recv,w |
1963 0CE7 0081 movwf 1 |
1964 |
1965 ;I2C2.c: 83: i2c_data_p->master_dest_addr = address; |
1966 0CE8 0822 movf I2C2_Master_Recv@address,w |
1967 0CE9 00A1 movwf ??_I2C2_Master_Recv |
1968 0CEA 0869 movf I2C2@i2c_data_p,w |
1969 0CEB 3E49 addlw 73 |
1970 0CEC 0086 movwf 6 |
1971 0CED 3001 movlw 1 ; select bank2/3 |
1972 0CEE 0087 movwf 7 |
1973 0CEF 0821 movf ??_I2C2_Master_Recv,w |
1974 0CF0 0081 movwf 1 |
1975 |
1976 ;I2C2.c: 84: i2c_data_p->buffer_in_read_ind = 0; |
1977 0CF1 0869 movf I2C2@i2c_data_p,w |
1978 0CF2 3E22 addlw 34 |
1979 0CF3 0086 movwf 6 |
1980 0CF4 3001 movlw 1 ; select bank2/3 |
1981 0CF5 0087 movwf 7 |
1982 0CF6 0181 clrf 1 |
1983 |
1984 ;I2C2.c: 85: i2c_data_p->buffer_in_write_ind = 0; |
1985 0CF7 0869 movf I2C2@i2c_data_p,w |
1986 0CF8 3E23 addlw 35 |
1987 0CF9 0086 movwf 6 |
1988 0CFA 3001 movlw 1 ; select bank2/3 |
1989 0CFB 0087 movwf 7 |
1990 0CFC 0181 clrf 1 |
1991 |
1992 ;I2C2.c: 88: i2c_data_p->operating_state = 0x5; |
1993 0CFD 3005 movlw 5 |
1994 0CFE 00A1 movwf ??_I2C2_Master_Recv |
1995 0CFF 0869 movf I2C2@i2c_data_p,w |
1996 0D00 3E47 addlw 71 |
1997 0D01 0086 movwf 6 |
1998 0D02 3001 movlw 1 ; select bank2/3 |
1999 0D03 0087 movwf 7 |
2000 0D04 0821 movf ??_I2C2_Master_Recv,w |
2001 0D05 0081 movwf 1 |
2002 |
2003 ;I2C2.c: 89: i2c_data_p->master_status = 0x21; |
2004 0D06 3021 movlw 33 |
2005 0D07 00A1 movwf ??_I2C2_Master_Recv |
2006 0D08 0869 movf I2C2@i2c_data_p,w |
2007 0D09 3E4A addlw 74 |
2008 0D0A 0086 movwf 6 |
2009 0D0B 3001 movlw 1 ; select bank2/3 |
2010 0D0C 0087 movwf 7 |
2011 0D0D 0821 movf ??_I2C2_Master_Recv,w |
2012 0D0E 0081 movwf 1 |
2013 |
2014 ;I2C2.c: 92: SSP2CON2bits.SEN = 1; |
2015 0D0F 0024 movlb 4 ; select bank4 |
2016 0D10 141E bsf 30,0 ;volatile |
2017 0D11 0008 return |
2018 0D12 __end_of_I2C2_Master_Recv: |
2019 |
2020 psect text4 |
2021 0C4D __ptext4: |
2022 ;; *************** function _MCP23009_Init ***************** |
2023 ;; Defined at: |
2024 ;; line 6 in file "MCP23009.c" |
2025 ;; Parameters: Size Location Type |
2026 ;; None |
2027 ;; Auto vars: Size Location Type |
2028 ;; buffer 8 9[BANK0 ] unsigned char [8] |
2029 ;; result 1 17[BANK0 ] unsigned char |
2030 ;; Return value: Size Location Type |
2031 ;; None void |
2032 ;; Registers used: |
2033 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack |
2034 ;; Tracked objects: |
2035 ;; On entry : 0/0 |
2036 ;; On exit : 0/0 |
2037 ;; Unchanged: 0/0 |
2038 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
2039 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2040 ;; Locals: 0 9 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2041 ;; Temps: 0 2 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2042 ;; Totals: 0 11 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2043 ;;Total ram usage: 11 bytes |
2044 ;; Hardware stack levels used: 1 |
2045 ;; Hardware stack levels required when called: 5 |
2046 ;; This function calls: |
2047 ;; _I2C2_Master_Send |
2048 ;; _I2C2_Get_Status |
2049 ;; This function is called by: |
2050 ;; _main |
2051 ;; This function uses a non-reentrant model |
2052 ;; |
2053 |
2054 |
2055 ;psect for function _MCP23009_Init |
2056 0C4D _MCP23009_Init: |
2057 |
2058 ;MCP23009.c: 7: uint8_t buffer[8]; |
2059 ;MCP23009.c: 9: buffer[0] = 0x00; |
2060 |
2061 ;incstack = 0 |
2062 ; Regs used in _MCP23009_Init: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] |
2063 0C4D 0020 movlb 0 ; select bank0 |
2064 0C4E 01A9 clrf MCP23009_Init@buffer |
2065 |
2066 ;MCP23009.c: 10: buffer[1] = 0xFF; |
2067 0C4F 30FF movlw 255 |
2068 0C50 00A7 movwf ??_MCP23009_Init |
2069 0C51 0827 movf ??_MCP23009_Init,w |
2070 0C52 00AA movwf MCP23009_Init@buffer+1 |
2071 |
2072 ;MCP23009.c: 11: buffer[2] = 0xFF; |
2073 0C53 30FF movlw 255 |
2074 0C54 00A7 movwf ??_MCP23009_Init |
2075 0C55 0827 movf ??_MCP23009_Init,w |
2076 0C56 00AB movwf MCP23009_Init@buffer+2 |
2077 |
2078 ;MCP23009.c: 12: buffer[3] = 0x00; |
2079 0C57 01AC clrf MCP23009_Init@buffer+3 |
2080 |
2081 ;MCP23009.c: 13: buffer[4] = 0x00; |
2082 0C58 01AD clrf MCP23009_Init@buffer+4 |
2083 |
2084 ;MCP23009.c: 14: buffer[5] = 0x00; |
2085 0C59 01AE clrf MCP23009_Init@buffer+5 |
2086 |
2087 ;MCP23009.c: 15: buffer[6] = 0x00; |
2088 0C5A 01AF clrf MCP23009_Init@buffer+6 |
2089 |
2090 ;MCP23009.c: 16: buffer[7] = 0xFF; |
2091 0C5B 30FF movlw 255 |
2092 0C5C 00A7 movwf ??_MCP23009_Init |
2093 0C5D 0827 movf ??_MCP23009_Init,w |
2094 0C5E 00B0 movwf MCP23009_Init@buffer+7 |
2095 |
2096 ;MCP23009.c: 18: I2C2_Master_Send(0x20, 8, buffer); |
2097 0C5F 3008 movlw 8 |
2098 0C60 00A7 movwf ??_MCP23009_Init |
2099 0C61 0827 movf ??_MCP23009_Init,w |
2100 0C62 00A0 movwf ?_I2C2_Master_Send |
2101 0C63 3029 movlw MCP23009_Init@buffer& (0+255) |
2102 0C64 00A8 movwf ??_MCP23009_Init+1 |
2103 0C65 0828 movf ??_MCP23009_Init+1,w |
2104 0C66 00A1 movwf ?_I2C2_Master_Send+1 |
2105 0C67 3020 movlw 32 |
2106 0C68 318D 25EC 318C fcall _I2C2_Master_Send |
2107 0C6B l2385: |
2108 ;MCP23009.c: 19: uint8_t result; |
2109 ;MCP23009.c: 20: do { |
2110 |
2111 |
2112 ;MCP23009.c: 21: result = I2C2_Get_Status(); |
2113 0C6B 3187 27BD 318C fcall _I2C2_Get_Status |
2114 0C6E 0020 movlb 0 ; select bank0 |
2115 0C6F 00A7 movwf ??_MCP23009_Init |
2116 0C70 0827 movf ??_MCP23009_Init,w |
2117 0C71 00B1 movwf MCP23009_Init@result |
2118 |
2119 ;MCP23009.c: 22: } while (!result); |
2120 0C72 0831 movf MCP23009_Init@result,w |
2121 0C73 1D03 skipz |
2122 0C74 0008 return |
2123 0C75 2C6B goto l2385 |
2124 0C76 __end_of_MCP23009_Init: |
2125 |
2126 psect text5 |
2127 074D __ptext5: |
2128 ;; *************** function _TLC59116_Write_All ***************** |
2129 ;; Defined at: |
2130 ;; line 54 in file "TLC59116.c" |
2131 ;; Parameters: Size Location Type |
2132 ;; values 1 wreg PTR unsigned char |
2133 ;; -> main@leds(16), |
2134 ;; Auto vars: Size Location Type |
2135 ;; values 1 27[BANK0 ] PTR unsigned char |
2136 ;; -> main@leds(16), |
2137 ;; buffer 17 9[BANK0 ] unsigned char [17] |
2138 ;; result 1 26[BANK0 ] unsigned char |
2139 ;; i 1 0 unsigned char |
2140 ;; Return value: Size Location Type |
2141 ;; None void |
2142 ;; Registers used: |
2143 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack |
2144 ;; Tracked objects: |
2145 ;; On entry : 0/0 |
2146 ;; On exit : 0/0 |
2147 ;; Unchanged: 0/0 |
2148 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
2149 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2150 ;; Locals: 0 19 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2151 ;; Temps: 0 2 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2152 ;; Totals: 0 21 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2153 ;;Total ram usage: 21 bytes |
2154 ;; Hardware stack levels used: 1 |
2155 ;; Hardware stack levels required when called: 5 |
2156 ;; This function calls: |
2157 ;; _I2C2_Master_Send |
2158 ;; _I2C2_Get_Status |
2159 ;; This function is called by: |
2160 ;; _main |
2161 ;; This function uses a non-reentrant model |
2162 ;; |
2163 |
2164 |
2165 ;psect for function _TLC59116_Write_All |
2166 074D _TLC59116_Write_All: |
2167 |
2168 ;incstack = 0 |
2169 ; Regs used in _TLC59116_Write_All: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] |
2170 ;TLC59116_Write_All@values stored from wreg |
2171 074D 0020 movlb 0 ; select bank0 |
2172 074E 00BB movwf TLC59116_Write_All@values |
2173 |
2174 ;TLC59116.c: 55: uint8_t buffer[17]; |
2175 ;TLC59116.c: 56: uint8_t i; |
2176 ;TLC59116.c: 58: buffer[0] = buffer[0] = 0x80 | 0x02; |
2177 074F 3082 movlw 130 |
2178 0750 00A9 movwf TLC59116_Write_All@buffer |
2179 0751 00A7 movwf ??_TLC59116_Write_All |
2180 0752 0827 movf ??_TLC59116_Write_All,w |
2181 0753 00A9 movwf TLC59116_Write_All@buffer |
2182 |
2183 ;TLC59116.c: 59: buffer[1] = values[0]; |
2184 0754 083B movf TLC59116_Write_All@values,w |
2185 0755 0086 movwf 6 |
2186 0756 0187 clrf 7 |
2187 0757 0801 movf 1,w |
2188 0758 00A7 movwf ??_TLC59116_Write_All |
2189 0759 0827 movf ??_TLC59116_Write_All,w |
2190 075A 00AA movwf TLC59116_Write_All@buffer+1 |
2191 |
2192 ;TLC59116.c: 60: buffer[2] = values[1]; |
2193 075B 083B movf TLC59116_Write_All@values,w |
2194 075C 0086 movwf 6 |
2195 075D 0187 clrf 7 |
2196 075E 3F41 moviw [1]fsr1 |
2197 075F 00AB movwf TLC59116_Write_All@buffer+2 |
2198 |
2199 ;TLC59116.c: 61: buffer[3] = values[2]; |
2200 0760 083B movf TLC59116_Write_All@values,w |
2201 0761 0086 movwf 6 |
2202 0762 0187 clrf 7 |
2203 0763 3F42 moviw [2]fsr1 |
2204 0764 00AC movwf TLC59116_Write_All@buffer+3 |
2205 |
2206 ;TLC59116.c: 62: buffer[4] = values[3]; |
2207 0765 083B movf TLC59116_Write_All@values,w |
2208 0766 0086 movwf 6 |
2209 0767 0187 clrf 7 |
2210 0768 3F43 moviw [3]fsr1 |
2211 0769 00AD movwf TLC59116_Write_All@buffer+4 |
2212 |
2213 ;TLC59116.c: 63: buffer[5] = values[4]; |
2214 076A 083B movf TLC59116_Write_All@values,w |
2215 076B 0086 movwf 6 |
2216 076C 0187 clrf 7 |
2217 076D 3F44 moviw [4]fsr1 |
2218 076E 00AE movwf TLC59116_Write_All@buffer+5 |
2219 |
2220 ;TLC59116.c: 64: buffer[6] = values[5]; |
2221 076F 083B movf TLC59116_Write_All@values,w |
2222 0770 0086 movwf 6 |
2223 0771 0187 clrf 7 |
2224 0772 3F45 moviw [5]fsr1 |
2225 0773 00AF movwf TLC59116_Write_All@buffer+6 |
2226 |
2227 ;TLC59116.c: 65: buffer[7] = values[6]; |
2228 0774 083B movf TLC59116_Write_All@values,w |
2229 0775 0086 movwf 6 |
2230 0776 0187 clrf 7 |
2231 0777 3F46 moviw [6]fsr1 |
2232 0778 00B0 movwf TLC59116_Write_All@buffer+7 |
2233 |
2234 ;TLC59116.c: 66: buffer[8] = values[7]; |
2235 0779 083B movf TLC59116_Write_All@values,w |
2236 077A 0086 movwf 6 |
2237 077B 0187 clrf 7 |
2238 077C 3F47 moviw [7]fsr1 |
2239 077D 00B1 movwf TLC59116_Write_All@buffer+8 |
2240 |
2241 ;TLC59116.c: 67: buffer[9] = values[8]; |
2242 077E 083B movf TLC59116_Write_All@values,w |
2243 077F 0086 movwf 6 |
2244 0780 0187 clrf 7 |
2245 0781 3F48 moviw [8]fsr1 |
2246 0782 00B2 movwf TLC59116_Write_All@buffer+9 |
2247 |
2248 ;TLC59116.c: 68: buffer[10] = values[9]; |
2249 0783 083B movf TLC59116_Write_All@values,w |
2250 0784 0086 movwf 6 |
2251 0785 0187 clrf 7 |
2252 0786 3F49 moviw [9]fsr1 |
2253 0787 00B3 movwf TLC59116_Write_All@buffer+10 |
2254 |
2255 ;TLC59116.c: 69: buffer[11] = values[10]; |
2256 0788 083B movf TLC59116_Write_All@values,w |
2257 0789 0086 movwf 6 |
2258 078A 0187 clrf 7 |
2259 078B 3F4A moviw [10]fsr1 |
2260 078C 00B4 movwf TLC59116_Write_All@buffer+11 |
2261 |
2262 ;TLC59116.c: 70: buffer[12] = values[11]; |
2263 078D 083B movf TLC59116_Write_All@values,w |
2264 078E 0086 movwf 6 |
2265 078F 0187 clrf 7 |
2266 0790 3F4B moviw [11]fsr1 |
2267 0791 00B5 movwf TLC59116_Write_All@buffer+12 |
2268 |
2269 ;TLC59116.c: 71: buffer[13] = values[12]; |
2270 0792 083B movf TLC59116_Write_All@values,w |
2271 0793 0086 movwf 6 |
2272 0794 0187 clrf 7 |
2273 0795 3F4C moviw [12]fsr1 |
2274 0796 00B6 movwf TLC59116_Write_All@buffer+13 |
2275 |
2276 ;TLC59116.c: 72: buffer[14] = values[13]; |
2277 0797 083B movf TLC59116_Write_All@values,w |
2278 0798 0086 movwf 6 |
2279 0799 0187 clrf 7 |
2280 079A 3F4D moviw [13]fsr1 |
2281 079B 00B7 movwf TLC59116_Write_All@buffer+14 |
2282 |
2283 ;TLC59116.c: 73: buffer[15] = values[14]; |
2284 079C 083B movf TLC59116_Write_All@values,w |
2285 079D 0086 movwf 6 |
2286 079E 0187 clrf 7 |
2287 079F 3F4E moviw [14]fsr1 |
2288 07A0 00B8 movwf TLC59116_Write_All@buffer+15 |
2289 |
2290 ;TLC59116.c: 74: buffer[16] = values[15]; |
2291 07A1 083B movf TLC59116_Write_All@values,w |
2292 07A2 0086 movwf 6 |
2293 07A3 0187 clrf 7 |
2294 07A4 3F4F moviw [15]fsr1 |
2295 07A5 00B9 movwf TLC59116_Write_All@buffer+16 |
2296 |
2297 ;TLC59116.c: 76: I2C2_Master_Send(0x60, 17, buffer); |
2298 07A6 3011 movlw 17 |
2299 07A7 00A7 movwf ??_TLC59116_Write_All |
2300 07A8 0827 movf ??_TLC59116_Write_All,w |
2301 07A9 00A0 movwf ?_I2C2_Master_Send |
2302 07AA 3029 movlw TLC59116_Write_All@buffer& (0+255) |
2303 07AB 00A8 movwf ??_TLC59116_Write_All+1 |
2304 07AC 0828 movf ??_TLC59116_Write_All+1,w |
2305 07AD 00A1 movwf ?_I2C2_Master_Send+1 |
2306 07AE 3060 movlw 96 |
2307 07AF 318D 25EC 3187 fcall _I2C2_Master_Send |
2308 07B2 l2373: |
2309 ;TLC59116.c: 77: uint8_t result; |
2310 ;TLC59116.c: 78: do { |
2311 |
2312 |
2313 ;TLC59116.c: 79: result = I2C2_Get_Status(); |
2314 07B2 3187 27BD 3187 fcall _I2C2_Get_Status |
2315 07B5 0020 movlb 0 ; select bank0 |
2316 07B6 00A7 movwf ??_TLC59116_Write_All |
2317 07B7 0827 movf ??_TLC59116_Write_All,w |
2318 07B8 00BA movwf TLC59116_Write_All@result |
2319 |
2320 ;TLC59116.c: 80: } while (!result); |
2321 07B9 083A movf TLC59116_Write_All@result,w |
2322 07BA 1D03 skipz |
2323 07BB 0008 return |
2324 07BC 2FB2 goto l2373 |
2325 07BD __end_of_TLC59116_Write_All: |
2326 |
2327 psect text6 |
2328 0D12 __ptext6: |
2329 ;; *************** function _TLC59116_Init ***************** |
2330 ;; Defined at: |
2331 ;; line 5 in file "TLC59116.c" |
2332 ;; Parameters: Size Location Type |
2333 ;; None |
2334 ;; Auto vars: Size Location Type |
2335 ;; buffer 25 9[BANK0 ] unsigned char [25] |
2336 ;; result 1 34[BANK0 ] unsigned char |
2337 ;; Return value: Size Location Type |
2338 ;; None void |
2339 ;; Registers used: |
2340 ;; wreg, fsr1l, fsr1h, status,2, status,0, pclath, cstack |
2341 ;; Tracked objects: |
2342 ;; On entry : 0/0 |
2343 ;; On exit : 0/0 |
2344 ;; Unchanged: 0/0 |
2345 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
2346 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2347 ;; Locals: 0 26 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2348 ;; Temps: 0 2 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2349 ;; Totals: 0 28 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2350 ;;Total ram usage: 28 bytes |
2351 ;; Hardware stack levels used: 1 |
2352 ;; Hardware stack levels required when called: 5 |
2353 ;; This function calls: |
2354 ;; _I2C2_Master_Send |
2355 ;; _I2C2_Get_Status |
2356 ;; This function is called by: |
2357 ;; _main |
2358 ;; This function uses a non-reentrant model |
2359 ;; |
2360 |
2361 |
2362 ;psect for function _TLC59116_Init |
2363 0D12 _TLC59116_Init: |
2364 |
2365 ;TLC59116.c: 6: uint8_t buffer[25]; |
2366 ;TLC59116.c: 8: buffer[0] = 0x80 | 0x00; |
2367 |
2368 ;incstack = 0 |
2369 ; Regs used in _TLC59116_Init: [wreg+fsr1l+fsr1h+status,2+status,0+pclath+cstack] |
2370 0D12 3080 movlw 128 |
2371 0D13 0020 movlb 0 ; select bank0 |
2372 0D14 00A7 movwf ??_TLC59116_Init |
2373 0D15 0827 movf ??_TLC59116_Init,w |
2374 0D16 00A9 movwf TLC59116_Init@buffer |
2375 |
2376 ;TLC59116.c: 9: buffer[1] = 0x80 | 0x00; |
2377 0D17 3080 movlw 128 |
2378 0D18 00A7 movwf ??_TLC59116_Init |
2379 0D19 0827 movf ??_TLC59116_Init,w |
2380 0D1A 00AA movwf TLC59116_Init@buffer+1 |
2381 |
2382 ;TLC59116.c: 10: buffer[2] = 0x00; |
2383 0D1B 01AB clrf TLC59116_Init@buffer+2 |
2384 |
2385 ;TLC59116.c: 11: buffer[3] = 0x00; |
2386 0D1C 01AC clrf TLC59116_Init@buffer+3 |
2387 |
2388 ;TLC59116.c: 12: buffer[4] = 0x00; |
2389 0D1D 01AD clrf TLC59116_Init@buffer+4 |
2390 |
2391 ;TLC59116.c: 13: buffer[5] = 0x00; |
2392 0D1E 01AE clrf TLC59116_Init@buffer+5 |
2393 |
2394 ;TLC59116.c: 14: buffer[6] = 0x00; |
2395 0D1F 01AF clrf TLC59116_Init@buffer+6 |
2396 |
2397 ;TLC59116.c: 15: buffer[7] = 0x00; |
2398 0D20 01B0 clrf TLC59116_Init@buffer+7 |
2399 |
2400 ;TLC59116.c: 16: buffer[8] = 0x00; |
2401 0D21 01B1 clrf TLC59116_Init@buffer+8 |
2402 |
2403 ;TLC59116.c: 17: buffer[9] = 0x00; |
2404 0D22 01B2 clrf TLC59116_Init@buffer+9 |
2405 |
2406 ;TLC59116.c: 18: buffer[10] = 0x00; |
2407 0D23 01B3 clrf TLC59116_Init@buffer+10 |
2408 |
2409 ;TLC59116.c: 19: buffer[11] = 0x00; |
2410 0D24 01B4 clrf TLC59116_Init@buffer+11 |
2411 |
2412 ;TLC59116.c: 20: buffer[12] = 0x00; |
2413 0D25 01B5 clrf TLC59116_Init@buffer+12 |
2414 |
2415 ;TLC59116.c: 21: buffer[13] = 0x00; |
2416 0D26 01B6 clrf TLC59116_Init@buffer+13 |
2417 |
2418 ;TLC59116.c: 22: buffer[14] = 0x00; |
2419 0D27 01B7 clrf TLC59116_Init@buffer+14 |
2420 |
2421 ;TLC59116.c: 23: buffer[15] = 0x00; |
2422 0D28 01B8 clrf TLC59116_Init@buffer+15 |
2423 |
2424 ;TLC59116.c: 24: buffer[16] = 0x00; |
2425 0D29 01B9 clrf TLC59116_Init@buffer+16 |
2426 |
2427 ;TLC59116.c: 25: buffer[17] = 0x00; |
2428 0D2A 01BA clrf TLC59116_Init@buffer+17 |
2429 |
2430 ;TLC59116.c: 26: buffer[18] = 0x00; |
2431 0D2B 01BB clrf TLC59116_Init@buffer+18 |
2432 |
2433 ;TLC59116.c: 27: buffer[19] = 0xFF; |
2434 0D2C 30FF movlw 255 |
2435 0D2D 00A7 movwf ??_TLC59116_Init |
2436 0D2E 0827 movf ??_TLC59116_Init,w |
2437 0D2F 00BC movwf TLC59116_Init@buffer+19 |
2438 |
2439 ;TLC59116.c: 28: buffer[20] = 0x00; |
2440 0D30 01BD clrf TLC59116_Init@buffer+20 |
2441 |
2442 ;TLC59116.c: 29: buffer[21] = 0xFF; |
2443 0D31 30FF movlw 255 |
2444 0D32 00A7 movwf ??_TLC59116_Init |
2445 0D33 0827 movf ??_TLC59116_Init,w |
2446 0D34 00BE movwf TLC59116_Init@buffer+21 |
2447 |
2448 ;TLC59116.c: 30: buffer[22] = 0xFF; |
2449 0D35 30FF movlw 255 |
2450 0D36 00A7 movwf ??_TLC59116_Init |
2451 0D37 0827 movf ??_TLC59116_Init,w |
2452 0D38 00BF movwf TLC59116_Init@buffer+22 |
2453 |
2454 ;TLC59116.c: 31: buffer[23] = 0xFF; |
2455 0D39 30FF movlw 255 |
2456 0D3A 00A7 movwf ??_TLC59116_Init |
2457 0D3B 0827 movf ??_TLC59116_Init,w |
2458 0D3C 00C0 movwf TLC59116_Init@buffer+23 |
2459 |
2460 ;TLC59116.c: 32: buffer[24] = 0xFF; |
2461 0D3D 30FF movlw 255 |
2462 0D3E 00A7 movwf ??_TLC59116_Init |
2463 0D3F 0827 movf ??_TLC59116_Init,w |
2464 0D40 00C1 movwf TLC59116_Init@buffer+24 |
2465 |
2466 ;TLC59116.c: 34: I2C2_Master_Send(0x60, 25, buffer); |
2467 0D41 3019 movlw 25 |
2468 0D42 00A7 movwf ??_TLC59116_Init |
2469 0D43 0827 movf ??_TLC59116_Init,w |
2470 0D44 00A0 movwf ?_I2C2_Master_Send |
2471 0D45 3029 movlw TLC59116_Init@buffer& (0+255) |
2472 0D46 00A8 movwf ??_TLC59116_Init+1 |
2473 0D47 0828 movf ??_TLC59116_Init+1,w |
2474 0D48 00A1 movwf ?_I2C2_Master_Send+1 |
2475 0D49 3060 movlw 96 |
2476 0D4A 318D 25EC 318D fcall _I2C2_Master_Send |
2477 0D4D l2333: |
2478 ;TLC59116.c: 35: uint8_t result; |
2479 ;TLC59116.c: 36: do { |
2480 |
2481 |
2482 ;TLC59116.c: 37: result = I2C2_Get_Status(); |
2483 0D4D 3187 27BD 318D fcall _I2C2_Get_Status |
2484 0D50 0020 movlb 0 ; select bank0 |
2485 0D51 00A7 movwf ??_TLC59116_Init |
2486 0D52 0827 movf ??_TLC59116_Init,w |
2487 0D53 00C2 movwf TLC59116_Init@result |
2488 |
2489 ;TLC59116.c: 38: } while (!result); |
2490 0D54 0842 movf TLC59116_Init@result,w |
2491 0D55 1D03 skipz |
2492 0D56 0008 return |
2493 0D57 2D4D goto l2333 |
2494 0D58 __end_of_TLC59116_Init: |
2495 |
2496 psect text7 |
2497 07BD __ptext7: |
2498 ;; *************** function _I2C2_Get_Status ***************** |
2499 ;; Defined at: |
2500 ;; line 485 in file "I2C2.c" |
2501 ;; Parameters: Size Location Type |
2502 ;; None |
2503 ;; Auto vars: Size Location Type |
2504 ;; None |
2505 ;; Return value: Size Location Type |
2506 ;; 1 wreg unsigned char |
2507 ;; Registers used: |
2508 ;; wreg, fsr1l, fsr1h, status,2, status,0 |
2509 ;; Tracked objects: |
2510 ;; On entry : 0/0 |
2511 ;; On exit : 0/0 |
2512 ;; Unchanged: 0/0 |
2513 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
2514 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2515 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2516 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2517 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2518 ;;Total ram usage: 0 bytes |
2519 ;; Hardware stack levels used: 1 |
2520 ;; Hardware stack levels required when called: 4 |
2521 ;; This function calls: |
2522 ;; Nothing |
2523 ;; This function is called by: |
2524 ;; _TLC59116_Init |
2525 ;; _TLC59116_Write_All |
2526 ;; _MCP23009_Init |
2527 ;; _MCP23009_Query |
2528 ;; _TLC59116_Write |
2529 ;; _TLC59116_Write_BC |
2530 ;; This function uses a non-reentrant model |
2531 ;; |
2532 |
2533 |
2534 ;psect for function _I2C2_Get_Status |
2535 07BD _I2C2_Get_Status: |
2536 |
2537 ;I2C2.c: 486: if (i2c_data_p->operating_mode == 0x11) { |
2538 |
2539 ;incstack = 0 |
2540 ; Regs used in _I2C2_Get_Status: [wreg+fsr1l+fsr1h+status,2+status,0] |
2541 07BD 0020 movlb 0 ; select bank0 |
2542 07BE 0869 movf I2C2@i2c_data_p,w |
2543 07BF 3E46 addlw 70 |
2544 07C0 0086 movwf 6 |
2545 07C1 3001 movlw 1 ; select bank2/3 |
2546 07C2 0087 movwf 7 |
2547 07C3 0801 movf 1,w |
2548 07C4 3A11 xorlw 17 |
2549 07C5 1D03 skipz |
2550 07C6 2FE1 goto l2885 |
2551 |
2552 ;I2C2.c: 487: if (i2c_data_p->master_status != 0x23 || i2c_data_p->buffer_in_len == 0) { |
2553 07C7 0869 movf I2C2@i2c_data_p,w |
2554 07C8 3E4A addlw 74 |
2555 07C9 0086 movwf 6 |
2556 07CA 3001 movlw 1 ; select bank2/3 |
2557 07CB 0087 movwf 7 |
2558 07CC 0801 movf 1,w |
2559 07CD 3A23 xorlw 35 |
2560 07CE 1D03 skipz |
2561 07CF 2FD8 goto l2875 |
2562 07D0 0869 movf I2C2@i2c_data_p,w |
2563 07D1 3E20 addlw 32 |
2564 07D2 0086 movwf 6 |
2565 07D3 3001 movlw 1 ; select bank2/3 |
2566 07D4 0087 movwf 7 |
2567 07D5 0881 movf 1,f |
2568 07D6 1D03 skipz |
2569 07D7 2FDA goto l2881 |
2570 07D8 l2875: |
2571 |
2572 ;I2C2.c: 488: return 0; |
2573 07D8 3000 movlw 0 |
2574 |
2575 ;I2C2.c: 489: } else { |
2576 07D9 0008 return |
2577 07DA l2881: |
2578 |
2579 ;I2C2.c: 490: return i2c_data_p->return_status; |
2580 07DA 0869 movf I2C2@i2c_data_p,w |
2581 07DB 3E48 addlw 72 |
2582 07DC 0086 movwf 6 |
2583 07DD 3001 movlw 1 ; select bank2/3 |
2584 07DE 0087 movwf 7 |
2585 07DF 0801 movf 1,w |
2586 |
2587 ;I2C2.c: 491: } |
2588 ;I2C2.c: 492: } else { |
2589 07E0 0008 return |
2590 07E1 l2885: |
2591 |
2592 ;I2C2.c: 493: if (i2c_data_p->operating_state != 0x1 || i2c_data_p->buffer_in_len == 0) { |
2593 07E1 0869 movf I2C2@i2c_data_p,w |
2594 07E2 3E47 addlw 71 |
2595 07E3 0086 movwf 6 |
2596 07E4 3001 movlw 1 ; select bank2/3 |
2597 07E5 0087 movwf 7 |
2598 07E6 0801 movf 1,w |
2599 07E7 3A01 xorlw 1 |
2600 07E8 1D03 skipz |
2601 07E9 2FF2 goto l2889 |
2602 07EA 0869 movf I2C2@i2c_data_p,w |
2603 07EB 3E20 addlw 32 |
2604 07EC 0086 movwf 6 |
2605 07ED 3001 movlw 1 ; select bank2/3 |
2606 07EE 0087 movwf 7 |
2607 07EF 0881 movf 1,f |
2608 07F0 1D03 skipz |
2609 07F1 2FF4 goto l2895 |
2610 07F2 l2889: |
2611 |
2612 ;I2C2.c: 494: return 0; |
2613 07F2 3000 movlw 0 |
2614 |
2615 ;I2C2.c: 495: } else { |
2616 07F3 0008 return |
2617 07F4 l2895: |
2618 |
2619 ;I2C2.c: 496: return i2c_data_p->return_status; |
2620 07F4 0869 movf I2C2@i2c_data_p,w |
2621 07F5 3E48 addlw 72 |
2622 07F6 0086 movwf 6 |
2623 07F7 3001 movlw 1 ; select bank2/3 |
2624 07F8 0087 movwf 7 |
2625 07F9 0801 movf 1,w |
2626 07FA 0008 return |
2627 07FB __end_of_I2C2_Get_Status: |
2628 |
2629 psect text8 |
2630 0DEC __ptext8: |
2631 ;; *************** function _I2C2_Master_Send ***************** |
2632 ;; Defined at: |
2633 ;; line 54 in file "I2C2.c" |
2634 ;; Parameters: Size Location Type |
2635 ;; address 1 wreg unsigned char |
2636 ;; length 1 0[BANK0 ] unsigned char |
2637 ;; msg 1 1[BANK0 ] PTR unsigned char |
2638 ;; -> MCP23009_Query@buffer(2), MCP23009_Init@buffer(8), TLC59116_Write_BC@buffer(2), TLC59116_Write_All@buffer(17), |
2639 ;; -> TLC59116_Write@buffer(2), TLC59116_Init@buffer(25), I2C2_Master_Restart@c(1), |
2640 ;; Auto vars: Size Location Type |
2641 ;; address 1 5[BANK0 ] unsigned char |
2642 ;; i 1 6[BANK0 ] unsigned char |
2643 ;; Return value: Size Location Type |
2644 ;; None void |
2645 ;; Registers used: |
2646 ;; wreg, fsr1l, fsr1h, status,2, status,0 |
2647 ;; Tracked objects: |
2648 ;; On entry : 0/0 |
2649 ;; On exit : 0/0 |
2650 ;; Unchanged: 0/0 |
2651 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
2652 ;; Params: 0 2 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2653 ;; Locals: 0 2 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2654 ;; Temps: 0 3 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2655 ;; Totals: 0 7 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2656 ;;Total ram usage: 7 bytes |
2657 ;; Hardware stack levels used: 1 |
2658 ;; Hardware stack levels required when called: 4 |
2659 ;; This function calls: |
2660 ;; Nothing |
2661 ;; This function is called by: |
2662 ;; _TLC59116_Init |
2663 ;; _TLC59116_Write_All |
2664 ;; _MCP23009_Init |
2665 ;; _MCP23009_Query |
2666 ;; _I2C2_Master_Restart |
2667 ;; _TLC59116_Write |
2668 ;; _TLC59116_Write_BC |
2669 ;; This function uses a non-reentrant model |
2670 ;; |
2671 |
2672 |
2673 ;psect for function _I2C2_Master_Send |
2674 0DEC _I2C2_Master_Send: |
2675 |
2676 ;incstack = 0 |
2677 ; Regs used in _I2C2_Master_Send: [wreg+fsr1l+fsr1h+status,2+status,0] |
2678 ;I2C2_Master_Send@address stored from wreg |
2679 0DEC 0020 movlb 0 ; select bank0 |
2680 0DED 00A5 movwf I2C2_Master_Send@address |
2681 |
2682 ;I2C2.c: 55: uint8_t i; |
2683 ;I2C2.c: 56: if (length == 0) |
2684 0DEE 08A0 movf I2C2_Master_Send@length,f |
2685 0DEF 1903 btfsc 3,2 |
2686 0DF0 0008 return |
2687 |
2688 ;I2C2.c: 60: for (i = 0; i < length; i++) { |
2689 |
2690 ;I2C2.c: 57: return; |
2691 0DF1 01A6 clrf I2C2_Master_Send@i |
2692 0DF2 l2661: |
2693 0DF2 0820 movf I2C2_Master_Send@length,w |
2694 0DF3 0226 subwf I2C2_Master_Send@i,w |
2695 0DF4 1803 btfsc 3,0 |
2696 0DF5 2E0C goto l2663 |
2697 |
2698 ;I2C2.c: 61: i2c_data_p->buffer_in[i] = msg[i]; |
2699 0DF6 0826 movf I2C2_Master_Send@i,w |
2700 0DF7 0721 addwf I2C2_Master_Send@msg,w |
2701 0DF8 00A2 movwf ??_I2C2_Master_Send |
2702 0DF9 0822 movf ??_I2C2_Master_Send,w |
2703 0DFA 0086 movwf 6 |
2704 0DFB 0187 clrf 7 |
2705 0DFC 0801 movf 1,w |
2706 0DFD 00A3 movwf ??_I2C2_Master_Send+1 |
2707 0DFE 0826 movf I2C2_Master_Send@i,w |
2708 0DFF 0769 addwf I2C2@i2c_data_p,w |
2709 0E00 00A4 movwf ??_I2C2_Master_Send+2 |
2710 0E01 0824 movf ??_I2C2_Master_Send+2,w |
2711 0E02 0086 movwf 6 |
2712 0E03 3001 movlw 1 ; select bank2/3 |
2713 0E04 0087 movwf 7 |
2714 0E05 0823 movf ??_I2C2_Master_Send+1,w |
2715 0E06 0081 movwf 1 |
2716 0E07 3001 movlw 1 |
2717 0E08 00A2 movwf ??_I2C2_Master_Send |
2718 0E09 0822 movf ??_I2C2_Master_Send,w |
2719 0E0A 07A6 addwf I2C2_Master_Send@i,f |
2720 0E0B 2DF2 goto l2661 |
2721 0E0C l2663: |
2722 |
2723 ;I2C2.c: 62: } |
2724 ;I2C2.c: 63: i2c_data_p->buffer_in_len = length; |
2725 0E0C 0820 movf I2C2_Master_Send@length,w |
2726 0E0D 00A2 movwf ??_I2C2_Master_Send |
2727 0E0E 0869 movf I2C2@i2c_data_p,w |
2728 0E0F 3E20 addlw 32 |
2729 0E10 0086 movwf 6 |
2730 0E11 3001 movlw 1 ; select bank2/3 |
2731 0E12 0087 movwf 7 |
2732 0E13 0822 movf ??_I2C2_Master_Send,w |
2733 0E14 0081 movwf 1 |
2734 |
2735 ;I2C2.c: 64: i2c_data_p->master_dest_addr = address; |
2736 0E15 0825 movf I2C2_Master_Send@address,w |
2737 0E16 00A2 movwf ??_I2C2_Master_Send |
2738 0E17 0869 movf I2C2@i2c_data_p,w |
2739 0E18 3E49 addlw 73 |
2740 0E19 0086 movwf 6 |
2741 0E1A 3001 movlw 1 ; select bank2/3 |
2742 0E1B 0087 movwf 7 |
2743 0E1C 0822 movf ??_I2C2_Master_Send,w |
2744 0E1D 0081 movwf 1 |
2745 |
2746 ;I2C2.c: 65: i2c_data_p->buffer_in_read_ind = 0; |
2747 0E1E 0869 movf I2C2@i2c_data_p,w |
2748 0E1F 3E22 addlw 34 |
2749 0E20 0086 movwf 6 |
2750 0E21 3001 movlw 1 ; select bank2/3 |
2751 0E22 0087 movwf 7 |
2752 0E23 0181 clrf 1 |
2753 |
2754 ;I2C2.c: 66: i2c_data_p->buffer_in_write_ind = 0; |
2755 0E24 0869 movf I2C2@i2c_data_p,w |
2756 0E25 3E23 addlw 35 |
2757 0E26 0086 movwf 6 |
2758 0E27 3001 movlw 1 ; select bank2/3 |
2759 0E28 0087 movwf 7 |
2760 0E29 0181 clrf 1 |
2761 |
2762 ;I2C2.c: 69: i2c_data_p->operating_state = 0x5; |
2763 0E2A 3005 movlw 5 |
2764 0E2B 00A2 movwf ??_I2C2_Master_Send |
2765 0E2C 0869 movf I2C2@i2c_data_p,w |
2766 0E2D 3E47 addlw 71 |
2767 0E2E 0086 movwf 6 |
2768 0E2F 3001 movlw 1 ; select bank2/3 |
2769 0E30 0087 movwf 7 |
2770 0E31 0822 movf ??_I2C2_Master_Send,w |
2771 0E32 0081 movwf 1 |
2772 |
2773 ;I2C2.c: 70: i2c_data_p->master_status = 0x20; |
2774 0E33 3020 movlw 32 |
2775 0E34 00A2 movwf ??_I2C2_Master_Send |
2776 0E35 0869 movf I2C2@i2c_data_p,w |
2777 0E36 3E4A addlw 74 |
2778 0E37 0086 movwf 6 |
2779 0E38 3001 movlw 1 ; select bank2/3 |
2780 0E39 0087 movwf 7 |
2781 0E3A 0822 movf ??_I2C2_Master_Send,w |
2782 0E3B 0081 movwf 1 |
2783 |
2784 ;I2C2.c: 73: SSP2CON2bits.SEN = 1; |
2785 0E3C 0024 movlb 4 ; select bank4 |
2786 0E3D 141E bsf 30,0 ;volatile |
2787 0E3E 0008 return |
2788 0E3F __end_of_I2C2_Master_Send: |
2789 |
2790 psect text9 |
2791 07FB __ptext9: |
2792 ;; *************** function _Interrupt_Enable ***************** |
2793 ;; Defined at: |
2794 ;; line 10 in file "INTERRUPTS.c" |
2795 ;; Parameters: Size Location Type |
2796 ;; None |
2797 ;; Auto vars: Size Location Type |
2798 ;; None |
2799 ;; Return value: Size Location Type |
2800 ;; None void |
2801 ;; Registers used: |
2802 ;; None |
2803 ;; Tracked objects: |
2804 ;; On entry : 0/0 |
2805 ;; On exit : 0/0 |
2806 ;; Unchanged: 0/0 |
2807 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
2808 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2809 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2810 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2811 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2812 ;;Total ram usage: 0 bytes |
2813 ;; Hardware stack levels used: 1 |
2814 ;; Hardware stack levels required when called: 4 |
2815 ;; This function calls: |
2816 ;; Nothing |
2817 ;; This function is called by: |
2818 ;; _main |
2819 ;; This function uses a non-reentrant model |
2820 ;; |
2821 |
2822 |
2823 ;psect for function _Interrupt_Enable |
2824 07FB _Interrupt_Enable: |
2825 |
2826 ;INTERRUPTS.c: 12: INTCONbits.PEIE = 1; |
2827 |
2828 ;incstack = 0 |
2829 ; Regs used in _Interrupt_Enable: [] |
2830 07FB 170B bsf 11,6 ;volatile |
2831 |
2832 ;INTERRUPTS.c: 13: INTCONbits.GIE = 1; |
2833 07FC 178B bsf 11,7 ;volatile |
2834 07FD 0008 return |
2835 07FE __end_of_Interrupt_Enable: |
2836 |
2837 psect text10 |
2838 07FE __ptext10: |
2839 ;; *************** function _Interrupt_Init ***************** |
2840 ;; Defined at: |
2841 ;; line 6 in file "INTERRUPTS.c" |
2842 ;; Parameters: Size Location Type |
2843 ;; None |
2844 ;; Auto vars: Size Location Type |
2845 ;; None |
2846 ;; Return value: Size Location Type |
2847 ;; None void |
2848 ;; Registers used: |
2849 ;; None |
2850 ;; Tracked objects: |
2851 ;; On entry : 0/0 |
2852 ;; On exit : 0/0 |
2853 ;; Unchanged: 0/0 |
2854 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
2855 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2856 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2857 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2858 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2859 ;;Total ram usage: 0 bytes |
2860 ;; Hardware stack levels used: 1 |
2861 ;; Hardware stack levels required when called: 4 |
2862 ;; This function calls: |
2863 ;; Nothing |
2864 ;; This function is called by: |
2865 ;; _main |
2866 ;; This function uses a non-reentrant model |
2867 ;; |
2868 |
2869 |
2870 ;psect for function _Interrupt_Init |
2871 07FE _Interrupt_Init: |
2872 |
2873 ;incstack = 0 |
2874 ; Regs used in _Interrupt_Init: [] |
2875 07FE 0008 return |
2876 07FF __end_of_Interrupt_Init: |
2877 |
2878 psect text11 |
2879 0C2B __ptext11: |
2880 ;; *************** function _I2C2_Configure_Master ***************** |
2881 ;; Defined at: |
2882 ;; line 34 in file "I2C2.c" |
2883 ;; Parameters: Size Location Type |
2884 ;; speed 1 wreg unsigned char |
2885 ;; Auto vars: Size Location Type |
2886 ;; speed 1 1[BANK0 ] unsigned char |
2887 ;; Return value: Size Location Type |
2888 ;; None void |
2889 ;; Registers used: |
2890 ;; wreg, fsr1l, fsr1h, status,2, status,0 |
2891 ;; Tracked objects: |
2892 ;; On entry : 0/0 |
2893 ;; On exit : 0/0 |
2894 ;; Unchanged: 0/0 |
2895 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
2896 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2897 ;; Locals: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2898 ;; Temps: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2899 ;; Totals: 0 2 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
2900 ;;Total ram usage: 2 bytes |
2901 ;; Hardware stack levels used: 1 |
2902 ;; Hardware stack levels required when called: 4 |
2903 ;; This function calls: |
2904 ;; Nothing |
2905 ;; This function is called by: |
2906 ;; _main |
2907 ;; This function uses a non-reentrant model |
2908 ;; |
2909 |
2910 |
2911 ;psect for function _I2C2_Configure_Master |
2912 0C2B _I2C2_Configure_Master: |
2913 |
2914 ;incstack = 0 |
2915 ; Regs used in _I2C2_Configure_Master: [wreg+fsr1l+fsr1h+status,2+status,0] |
2916 ;I2C2_Configure_Master@speed stored from wreg |
2917 0C2B 0020 movlb 0 ; select bank0 |
2918 0C2C 00A1 movwf I2C2_Configure_Master@speed |
2919 |
2920 ;I2C2.c: 35: i2c_data_p->operating_mode = 0x11; |
2921 0C2D 3011 movlw 17 |
2922 0C2E 00A0 movwf ??_I2C2_Configure_Master |
2923 0C2F 0869 movf I2C2@i2c_data_p,w |
2924 0C30 3E46 addlw 70 |
2925 0C31 0086 movwf 6 |
2926 0C32 3001 movlw 1 ; select bank2/3 |
2927 0C33 0087 movwf 7 |
2928 0C34 0820 movf ??_I2C2_Configure_Master,w |
2929 0C35 0081 movwf 1 |
2930 |
2931 ;I2C2.c: 37: TRISBbits.TRISB7 = 1; |
2932 0C36 0021 movlb 1 ; select bank1 |
2933 0C37 178D bsf 13,7 ;volatile |
2934 |
2935 ;I2C2.c: 38: TRISBbits.TRISB5 = 1; |
2936 0C38 168D bsf 13,5 ;volatile |
2937 |
2938 ;I2C2.c: 40: SSP2STAT = 0x0; |
2939 0C39 0024 movlb 4 ; select bank4 |
2940 0C3A 019C clrf 28 ;volatile |
2941 |
2942 ;I2C2.c: 41: SSP2CON1 = 0x0; |
2943 0C3B 019D clrf 29 ;volatile |
2944 |
2945 ;I2C2.c: 42: SSP2CON2 = 0x0; |
2946 0C3C 019E clrf 30 ;volatile |
2947 |
2948 ;I2C2.c: 43: SSP2CON1bits.SSPM = 0x8; |
2949 0C3D 081D movf 29,w ;volatile |
2950 0C3E 39F0 andlw -16 |
2951 0C3F 3808 iorlw 8 |
2952 0C40 009D movwf 29 ;volatile |
2953 |
2954 ;I2C2.c: 44: if (!speed) { |
2955 0C41 0020 movlb 0 ; select bank0 |
2956 0C42 08A1 movf I2C2_Configure_Master@speed,f |
2957 0C43 1D03 skipz |
2958 0C44 2C47 goto l2277 |
2959 |
2960 ;I2C2.c: 45: SSP2ADD = 0x13; |
2961 0C45 3013 movlw 19 |
2962 0C46 2C48 goto L1 |
2963 0C47 l2277: |
2964 ;I2C2.c: 46: } else { |
2965 |
2966 |
2967 ;I2C2.c: 47: SSP2ADD = 0x4F; |
2968 0C47 304F movlw 79 |
2969 0C48 L1: |
2970 0C48 0024 movlb 4 ; select bank4 |
2971 0C49 009A movwf 26 ;volatile |
2972 |
2973 ;I2C2.c: 48: } |
2974 ;I2C2.c: 49: SSP2STATbits.SMP = 1; |
2975 0C4A 179C bsf 28,7 ;volatile |
2976 |
2977 ;I2C2.c: 50: SSP2CON1bits.SSPEN = 1; |
2978 0C4B 169D bsf 29,5 ;volatile |
2979 0C4C 0008 return |
2980 0C4D __end_of_I2C2_Configure_Master: |
2981 |
2982 psect text12 |
2983 0E3F __ptext12: |
2984 ;; *************** function _I2C2_Init ***************** |
2985 ;; Defined at: |
2986 ;; line 8 in file "I2C2.c" |
2987 ;; Parameters: Size Location Type |
2988 ;; data 1 wreg PTR struct . |
2989 ;; -> main@i2c2_data(77), |
2990 ;; Auto vars: Size Location Type |
2991 ;; data 1 1[BANK0 ] PTR struct . |
2992 ;; -> main@i2c2_data(77), |
2993 ;; Return value: Size Location Type |
2994 ;; None void |
2995 ;; Registers used: |
2996 ;; wreg, fsr1l, fsr1h, status,2 |
2997 ;; Tracked objects: |
2998 ;; On entry : 0/0 |
2999 ;; On exit : 0/0 |
3000 ;; Unchanged: 0/0 |
3001 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
3002 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3003 ;; Locals: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3004 ;; Temps: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3005 ;; Totals: 0 2 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3006 ;;Total ram usage: 2 bytes |
3007 ;; Hardware stack levels used: 1 |
3008 ;; Hardware stack levels required when called: 4 |
3009 ;; This function calls: |
3010 ;; Nothing |
3011 ;; This function is called by: |
3012 ;; _main |
3013 ;; This function uses a non-reentrant model |
3014 ;; |
3015 |
3016 |
3017 ;psect for function _I2C2_Init |
3018 0E3F _I2C2_Init: |
3019 |
3020 ;incstack = 0 |
3021 ; Regs used in _I2C2_Init: [wreg+fsr1l+fsr1h+status,2] |
3022 ;I2C2_Init@data stored from wreg |
3023 0E3F 0020 movlb 0 ; select bank0 |
3024 0E40 00A1 movwf I2C2_Init@data |
3025 |
3026 ;I2C2.c: 9: i2c_data_p = data; |
3027 0E41 0821 movf I2C2_Init@data,w |
3028 0E42 00A0 movwf ??_I2C2_Init |
3029 0E43 0820 movf ??_I2C2_Init,w |
3030 0E44 00E9 movwf I2C2@i2c_data_p |
3031 |
3032 ;I2C2.c: 11: i2c_data_p->buffer_in_len = 0; |
3033 0E45 0869 movf I2C2@i2c_data_p,w |
3034 0E46 3E20 addlw 32 |
3035 0E47 0086 movwf 6 |
3036 0E48 3001 movlw 1 ; select bank2/3 |
3037 0E49 0087 movwf 7 |
3038 0E4A 0181 clrf 1 |
3039 |
3040 ;I2C2.c: 12: i2c_data_p->buffer_in_len_tmp = 0; |
3041 0E4B 0869 movf I2C2@i2c_data_p,w |
3042 0E4C 3E21 addlw 33 |
3043 0E4D 0086 movwf 6 |
3044 0E4E 3001 movlw 1 ; select bank2/3 |
3045 0E4F 0087 movwf 7 |
3046 0E50 0181 clrf 1 |
3047 |
3048 ;I2C2.c: 13: i2c_data_p->buffer_in_read_ind = 0; |
3049 0E51 0869 movf I2C2@i2c_data_p,w |
3050 0E52 3E22 addlw 34 |
3051 0E53 0086 movwf 6 |
3052 0E54 3001 movlw 1 ; select bank2/3 |
3053 0E55 0087 movwf 7 |
3054 0E56 0181 clrf 1 |
3055 |
3056 ;I2C2.c: 14: i2c_data_p->buffer_in_write_ind = 0; |
3057 0E57 0869 movf I2C2@i2c_data_p,w |
3058 0E58 3E23 addlw 35 |
3059 0E59 0086 movwf 6 |
3060 0E5A 3001 movlw 1 ; select bank2/3 |
3061 0E5B 0087 movwf 7 |
3062 0E5C 0181 clrf 1 |
3063 |
3064 ;I2C2.c: 16: i2c_data_p->buffer_out_ind = 0; |
3065 0E5D 0869 movf I2C2@i2c_data_p,w |
3066 0E5E 3E45 addlw 69 |
3067 0E5F 0086 movwf 6 |
3068 0E60 3001 movlw 1 ; select bank2/3 |
3069 0E61 0087 movwf 7 |
3070 0E62 0181 clrf 1 |
3071 |
3072 ;I2C2.c: 17: i2c_data_p->buffer_out_len = 0; |
3073 0E63 0869 movf I2C2@i2c_data_p,w |
3074 0E64 3E44 addlw 68 |
3075 0E65 0086 movwf 6 |
3076 0E66 3001 movlw 1 ; select bank2/3 |
3077 0E67 0087 movwf 7 |
3078 0E68 0181 clrf 1 |
3079 |
3080 ;I2C2.c: 19: i2c_data_p->operating_mode = 0; |
3081 0E69 0869 movf I2C2@i2c_data_p,w |
3082 0E6A 3E46 addlw 70 |
3083 0E6B 0086 movwf 6 |
3084 0E6C 3001 movlw 1 ; select bank2/3 |
3085 0E6D 0087 movwf 7 |
3086 0E6E 0181 clrf 1 |
3087 |
3088 ;I2C2.c: 20: i2c_data_p->operating_state = 0x1; |
3089 0E6F 0869 movf I2C2@i2c_data_p,w |
3090 0E70 3E47 addlw 71 |
3091 0E71 0086 movwf 6 |
3092 0E72 3001 movlw 1 ; select bank2/3 |
3093 0E73 0087 movwf 7 |
3094 0E74 0181 clrf 1 |
3095 0E75 0A81 incf 1,f |
3096 |
3097 ;I2C2.c: 21: i2c_data_p->return_status = 0; |
3098 0E76 0869 movf I2C2@i2c_data_p,w |
3099 0E77 3E48 addlw 72 |
3100 0E78 0086 movwf 6 |
3101 0E79 3001 movlw 1 ; select bank2/3 |
3102 0E7A 0087 movwf 7 |
3103 0E7B 0181 clrf 1 |
3104 |
3105 ;I2C2.c: 23: i2c_data_p->slave_in_last_byte = 0; |
3106 0E7C 0869 movf I2C2@i2c_data_p,w |
3107 0E7D 3E4B addlw 75 |
3108 0E7E 0086 movwf 6 |
3109 0E7F 3001 movlw 1 ; select bank2/3 |
3110 0E80 0087 movwf 7 |
3111 0E81 0181 clrf 1 |
3112 |
3113 ;I2C2.c: 24: i2c_data_p->slave_sending_data = 0; |
3114 0E82 0869 movf I2C2@i2c_data_p,w |
3115 0E83 3E4C addlw 76 |
3116 0E84 0086 movwf 6 |
3117 0E85 3001 movlw 1 ; select bank2/3 |
3118 0E86 0087 movwf 7 |
3119 0E87 0181 clrf 1 |
3120 |
3121 ;I2C2.c: 26: i2c_data_p->master_dest_addr = 0; |
3122 0E88 0869 movf I2C2@i2c_data_p,w |
3123 0E89 3E49 addlw 73 |
3124 0E8A 0086 movwf 6 |
3125 0E8B 3001 movlw 1 ; select bank2/3 |
3126 0E8C 0087 movwf 7 |
3127 0E8D 0181 clrf 1 |
3128 |
3129 ;I2C2.c: 27: i2c_data_p->master_status = 0x23; |
3130 0E8E 3023 movlw 35 |
3131 0E8F 00A0 movwf ??_I2C2_Init |
3132 0E90 0869 movf I2C2@i2c_data_p,w |
3133 0E91 3E4A addlw 74 |
3134 0E92 0086 movwf 6 |
3135 0E93 3001 movlw 1 ; select bank2/3 |
3136 0E94 0087 movwf 7 |
3137 0E95 0820 movf ??_I2C2_Init,w |
3138 0E96 0081 movwf 1 |
3139 |
3140 ;I2C2.c: 30: PIE4bits.SSP2IE = 1; |
3141 0E97 0021 movlb 1 ; select bank1 |
3142 0E98 1414 bsf 20,0 ;volatile |
3143 0E99 0008 return |
3144 0E9A __end_of_I2C2_Init: |
3145 |
3146 psect text13 |
3147 0C0F __ptext13: |
3148 ;; *************** function _I2C1_Configure_Slave ***************** |
3149 ;; Defined at: |
3150 ;; line 120 in file "I2C1.c" |
3151 ;; Parameters: Size Location Type |
3152 ;; addr 1 wreg unsigned char |
3153 ;; Auto vars: Size Location Type |
3154 ;; addr 1 1[BANK0 ] unsigned char |
3155 ;; Return value: Size Location Type |
3156 ;; None void |
3157 ;; Registers used: |
3158 ;; wreg, fsr1l, fsr1h, status,2, status,0 |
3159 ;; Tracked objects: |
3160 ;; On entry : 0/0 |
3161 ;; On exit : 0/0 |
3162 ;; Unchanged: 0/0 |
3163 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
3164 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3165 ;; Locals: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3166 ;; Temps: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3167 ;; Totals: 0 2 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3168 ;;Total ram usage: 2 bytes |
3169 ;; Hardware stack levels used: 1 |
3170 ;; Hardware stack levels required when called: 4 |
3171 ;; This function calls: |
3172 ;; Nothing |
3173 ;; This function is called by: |
3174 ;; _main |
3175 ;; This function uses a non-reentrant model |
3176 ;; |
3177 |
3178 |
3179 ;psect for function _I2C1_Configure_Slave |
3180 0C0F _I2C1_Configure_Slave: |
3181 |
3182 ;incstack = 0 |
3183 ; Regs used in _I2C1_Configure_Slave: [wreg+fsr1l+fsr1h+status,2+status,0] |
3184 ;I2C1_Configure_Slave@addr stored from wreg |
3185 0C0F 0020 movlb 0 ; select bank0 |
3186 0C10 00A1 movwf I2C1_Configure_Slave@addr |
3187 |
3188 ;I2C1.c: 121: i2c_data_p->operating_mode = 0x10; |
3189 0C11 3010 movlw 16 |
3190 0C12 00A0 movwf ??_I2C1_Configure_Slave |
3191 0C13 0879 movf _i2c_data_p,w |
3192 0C14 3E46 addlw 70 |
3193 0C15 0086 movwf 6 |
3194 0C16 0187 clrf 7 |
3195 0C17 0820 movf ??_I2C1_Configure_Slave,w |
3196 0C18 0081 movwf 1 |
3197 |
3198 ;I2C1.c: 124: TRISBbits.TRISB6 = 1; |
3199 0C19 0021 movlb 1 ; select bank1 |
3200 0C1A 170D bsf 13,6 ;volatile |
3201 |
3202 ;I2C1.c: 125: TRISBbits.TRISB4 = 1; |
3203 0C1B 160D bsf 13,4 ;volatile |
3204 |
3205 ;I2C1.c: 127: SSP1ADD = addr << 1; |
3206 0C1C 0020 movlb 0 ; select bank0 |
3207 0C1D 3521 lslf I2C1_Configure_Slave@addr,w |
3208 0C1E 0024 movlb 4 ; select bank4 |
3209 0C1F 0092 movwf 18 ;volatile |
3210 |
3211 ;I2C1.c: 129: SSP1STAT = 0x0; |
3212 0C20 0194 clrf 20 ;volatile |
3213 |
3214 ;I2C1.c: 130: SSP1CON1 = 0x0; |
3215 0C21 0195 clrf 21 ;volatile |
3216 |
3217 ;I2C1.c: 131: SSP1CON2 = 0x0; |
3218 0C22 0196 clrf 22 ;volatile |
3219 |
3220 ;I2C1.c: 132: SSP1CON1bits.SSPM = 0xE; |
3221 0C23 0815 movf 21,w ;volatile |
3222 0C24 39F0 andlw -16 |
3223 0C25 380E iorlw 14 |
3224 0C26 0095 movwf 21 ;volatile |
3225 |
3226 ;I2C1.c: 133: SSP1STATbits.SMP = 1; |
3227 0C27 1794 bsf 20,7 ;volatile |
3228 |
3229 ;I2C1.c: 134: SSP1CON2bits.SEN = 1; |
3230 0C28 1416 bsf 22,0 ;volatile |
3231 |
3232 ;I2C1.c: 135: SSP1CON1bits.SSPEN = 1; |
3233 0C29 1695 bsf 21,5 ;volatile |
3234 0C2A 0008 return |
3235 0C2B __end_of_I2C1_Configure_Slave: |
3236 |
3237 psect text14 |
3238 0D9E __ptext14: |
3239 ;; *************** function _I2C1_Init ***************** |
3240 ;; Defined at: |
3241 ;; line 8 in file "I2C1.c" |
3242 ;; Parameters: Size Location Type |
3243 ;; data 1 wreg PTR struct . |
3244 ;; -> main@i2c1_data(77), |
3245 ;; Auto vars: Size Location Type |
3246 ;; data 1 1[BANK0 ] PTR struct . |
3247 ;; -> main@i2c1_data(77), |
3248 ;; Return value: Size Location Type |
3249 ;; None void |
3250 ;; Registers used: |
3251 ;; wreg, fsr1l, fsr1h, status,2 |
3252 ;; Tracked objects: |
3253 ;; On entry : 0/0 |
3254 ;; On exit : 0/0 |
3255 ;; Unchanged: 0/0 |
3256 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
3257 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3258 ;; Locals: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3259 ;; Temps: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3260 ;; Totals: 0 2 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3261 ;;Total ram usage: 2 bytes |
3262 ;; Hardware stack levels used: 1 |
3263 ;; Hardware stack levels required when called: 4 |
3264 ;; This function calls: |
3265 ;; Nothing |
3266 ;; This function is called by: |
3267 ;; _main |
3268 ;; This function uses a non-reentrant model |
3269 ;; |
3270 |
3271 |
3272 ;psect for function _I2C1_Init |
3273 0D9E _I2C1_Init: |
3274 |
3275 ;incstack = 0 |
3276 ; Regs used in _I2C1_Init: [wreg+fsr1l+fsr1h+status,2] |
3277 ;I2C1_Init@data stored from wreg |
3278 0D9E 0020 movlb 0 ; select bank0 |
3279 0D9F 00A1 movwf I2C1_Init@data |
3280 |
3281 ;I2C1.c: 9: i2c_data_p = data; |
3282 0DA0 0821 movf I2C1_Init@data,w |
3283 0DA1 00A0 movwf ??_I2C1_Init |
3284 0DA2 0820 movf ??_I2C1_Init,w |
3285 0DA3 00F9 movwf _i2c_data_p |
3286 |
3287 ;I2C1.c: 11: i2c_data_p->buffer_in_len = 0; |
3288 0DA4 0879 movf _i2c_data_p,w |
3289 0DA5 3E20 addlw 32 |
3290 0DA6 0086 movwf 6 |
3291 0DA7 0187 clrf 7 |
3292 0DA8 0181 clrf 1 |
3293 |
3294 ;I2C1.c: 12: i2c_data_p->buffer_in_len_tmp = 0; |
3295 0DA9 0879 movf _i2c_data_p,w |
3296 0DAA 3E21 addlw 33 |
3297 0DAB 0086 movwf 6 |
3298 0DAC 0187 clrf 7 |
3299 0DAD 0181 clrf 1 |
3300 |
3301 ;I2C1.c: 13: i2c_data_p->buffer_in_read_ind = 0; |
3302 0DAE 0879 movf _i2c_data_p,w |
3303 0DAF 3E22 addlw 34 |
3304 0DB0 0086 movwf 6 |
3305 0DB1 0187 clrf 7 |
3306 0DB2 0181 clrf 1 |
3307 |
3308 ;I2C1.c: 14: i2c_data_p->buffer_in_write_ind = 0; |
3309 0DB3 0879 movf _i2c_data_p,w |
3310 0DB4 3E23 addlw 35 |
3311 0DB5 0086 movwf 6 |
3312 0DB6 0187 clrf 7 |
3313 0DB7 0181 clrf 1 |
3314 |
3315 ;I2C1.c: 16: i2c_data_p->buffer_out_ind = 0; |
3316 0DB8 0879 movf _i2c_data_p,w |
3317 0DB9 3E45 addlw 69 |
3318 0DBA 0086 movwf 6 |
3319 0DBB 0187 clrf 7 |
3320 0DBC 0181 clrf 1 |
3321 |
3322 ;I2C1.c: 17: i2c_data_p->buffer_out_len = 0; |
3323 0DBD 0879 movf _i2c_data_p,w |
3324 0DBE 3E44 addlw 68 |
3325 0DBF 0086 movwf 6 |
3326 0DC0 0187 clrf 7 |
3327 0DC1 0181 clrf 1 |
3328 |
3329 ;I2C1.c: 19: i2c_data_p->operating_mode = 0; |
3330 0DC2 0879 movf _i2c_data_p,w |
3331 0DC3 3E46 addlw 70 |
3332 0DC4 0086 movwf 6 |
3333 0DC5 0187 clrf 7 |
3334 0DC6 0181 clrf 1 |
3335 |
3336 ;I2C1.c: 20: i2c_data_p->operating_state = 0x1; |
3337 0DC7 0879 movf _i2c_data_p,w |
3338 0DC8 3E47 addlw 71 |
3339 0DC9 0086 movwf 6 |
3340 0DCA 0187 clrf 7 |
3341 0DCB 0181 clrf 1 |
3342 0DCC 0A81 incf 1,f |
3343 |
3344 ;I2C1.c: 21: i2c_data_p->return_status = 0; |
3345 0DCD 0879 movf _i2c_data_p,w |
3346 0DCE 3E48 addlw 72 |
3347 0DCF 0086 movwf 6 |
3348 0DD0 0187 clrf 7 |
3349 0DD1 0181 clrf 1 |
3350 |
3351 ;I2C1.c: 23: i2c_data_p->slave_in_last_byte = 0; |
3352 0DD2 0879 movf _i2c_data_p,w |
3353 0DD3 3E4B addlw 75 |
3354 0DD4 0086 movwf 6 |
3355 0DD5 0187 clrf 7 |
3356 0DD6 0181 clrf 1 |
3357 |
3358 ;I2C1.c: 24: i2c_data_p->slave_sending_data = 0; |
3359 0DD7 0879 movf _i2c_data_p,w |
3360 0DD8 3E4C addlw 76 |
3361 0DD9 0086 movwf 6 |
3362 0DDA 0187 clrf 7 |
3363 0DDB 0181 clrf 1 |
3364 |
3365 ;I2C1.c: 26: i2c_data_p->master_dest_addr = 0; |
3366 0DDC 0879 movf _i2c_data_p,w |
3367 0DDD 3E49 addlw 73 |
3368 0DDE 0086 movwf 6 |
3369 0DDF 0187 clrf 7 |
3370 0DE0 0181 clrf 1 |
3371 |
3372 ;I2C1.c: 27: i2c_data_p->master_status = 0x23; |
3373 0DE1 3023 movlw 35 |
3374 0DE2 00A0 movwf ??_I2C1_Init |
3375 0DE3 0879 movf _i2c_data_p,w |
3376 0DE4 3E4A addlw 74 |
3377 0DE5 0086 movwf 6 |
3378 0DE6 0187 clrf 7 |
3379 0DE7 0820 movf ??_I2C1_Init,w |
3380 0DE8 0081 movwf 1 |
3381 |
3382 ;I2C1.c: 30: PIE1bits.SSP1IE = 1; |
3383 0DE9 0021 movlb 1 ; select bank1 |
3384 0DEA 1591 bsf 17,3 ;volatile |
3385 0DEB 0008 return |
3386 0DEC __end_of_I2C1_Init: |
3387 |
3388 psect text15 |
3389 0CA7 __ptext15: |
3390 ;; *************** function _Read_Address ***************** |
3391 ;; Defined at: |
3392 ;; line 67 in file "main.c" |
3393 ;; Parameters: Size Location Type |
3394 ;; None |
3395 ;; Auto vars: Size Location Type |
3396 ;; ret 1 3[BANK0 ] unsigned char |
3397 ;; Return value: Size Location Type |
3398 ;; 1 wreg unsigned char |
3399 ;; Registers used: |
3400 ;; wreg, status,2, status,0 |
3401 ;; Tracked objects: |
3402 ;; On entry : 0/0 |
3403 ;; On exit : 0/0 |
3404 ;; Unchanged: 0/0 |
3405 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
3406 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3407 ;; Locals: 0 1 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3408 ;; Temps: 0 3 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3409 ;; Totals: 0 4 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3410 ;;Total ram usage: 4 bytes |
3411 ;; Hardware stack levels used: 1 |
3412 ;; Hardware stack levels required when called: 4 |
3413 ;; This function calls: |
3414 ;; Nothing |
3415 ;; This function is called by: |
3416 ;; _main |
3417 ;; This function uses a non-reentrant model |
3418 ;; |
3419 |
3420 |
3421 ;psect for function _Read_Address |
3422 0CA7 _Read_Address: |
3423 |
3424 ;main.c: 68: uint8_t ret = 0; |
3425 |
3426 ;incstack = 0 |
3427 ; Regs used in _Read_Address: [wreg+status,2+status,0] |
3428 0CA7 0020 movlb 0 ; select bank0 |
3429 0CA8 01A3 clrf Read_Address@ret |
3430 |
3431 ;main.c: 69: ret |= LATCbits.LATC3 << 3; |
3432 0CA9 0022 movlb 2 ; select bank2 |
3433 0CAA 0C0E rrf 14,w ;volatile |
3434 0CAB 0020 movlb 0 ; select bank0 |
3435 0CAC 00A0 movwf ??_Read_Address |
3436 0CAD 0CA0 rrf ??_Read_Address,f |
3437 0CAE 0C20 rrf ??_Read_Address,w |
3438 0CAF 3901 andlw 1 |
3439 0CB0 00A1 movwf ??_Read_Address+1 |
3440 0CB1 3002 movlw 2 |
3441 0CB2 u1065: |
3442 0CB2 35A1 lslf ??_Read_Address+1,f |
3443 0CB3 3EFF addlw -1 |
3444 0CB4 1D03 skipz |
3445 0CB5 2CB2 goto u1065 |
3446 0CB6 3521 lslf ??_Read_Address+1,w |
3447 0CB7 00A2 movwf ??_Read_Address+2 |
3448 0CB8 0822 movf ??_Read_Address+2,w |
3449 0CB9 04A3 iorwf Read_Address@ret,f |
3450 |
3451 ;main.c: 70: ret |= LATCbits.LATC2 << 2; |
3452 0CBA 0022 movlb 2 ; select bank2 |
3453 0CBB 0C0E rrf 14,w ;volatile |
3454 0CBC 0C89 rrf 9,f |
3455 0CBD 3901 andlw 1 |
3456 0CBE 0020 movlb 0 ; select bank0 |
3457 0CBF 00A0 movwf ??_Read_Address |
3458 0CC0 3001 movlw 1 |
3459 0CC1 u1075: |
3460 0CC1 35A0 lslf ??_Read_Address,f |
3461 0CC2 3EFF addlw -1 |
3462 0CC3 1D03 skipz |
3463 0CC4 2CC1 goto u1075 |
3464 0CC5 3520 lslf ??_Read_Address,w |
3465 0CC6 00A1 movwf ??_Read_Address+1 |
3466 0CC7 0821 movf ??_Read_Address+1,w |
3467 0CC8 04A3 iorwf Read_Address@ret,f |
3468 |
3469 ;main.c: 71: ret |= LATCbits.LATC1 << 1; |
3470 0CC9 0022 movlb 2 ; select bank2 |
3471 0CCA 0C0E rrf 14,w ;volatile |
3472 0CCB 3901 andlw 1 |
3473 0CCC 0709 addwf 9,w |
3474 0CCD 0020 movlb 0 ; select bank0 |
3475 0CCE 00A0 movwf ??_Read_Address |
3476 0CCF 0820 movf ??_Read_Address,w |
3477 0CD0 04A3 iorwf Read_Address@ret,f |
3478 |
3479 ;main.c: 72: ret |= LATCbits.LATC0; |
3480 0CD1 0022 movlb 2 ; select bank2 |
3481 0CD2 080E movf 14,w ;volatile |
3482 0CD3 3901 andlw 1 |
3483 0CD4 0020 movlb 0 ; select bank0 |
3484 0CD5 00A0 movwf ??_Read_Address |
3485 0CD6 0820 movf ??_Read_Address,w |
3486 0CD7 04A3 iorwf Read_Address@ret,f |
3487 |
3488 ;main.c: 74: return ret; |
3489 0CD8 0823 movf Read_Address@ret,w |
3490 0CD9 0008 return |
3491 0CDA __end_of_Read_Address: |
3492 |
3493 psect text16 |
3494 0BF5 __ptext16: |
3495 ;; *************** function _Pins_Init ***************** |
3496 ;; Defined at: |
3497 ;; line 31 in file "main.c" |
3498 ;; Parameters: Size Location Type |
3499 ;; None |
3500 ;; Auto vars: Size Location Type |
3501 ;; None |
3502 ;; Return value: Size Location Type |
3503 ;; None void |
3504 ;; Registers used: |
3505 ;; status,2 |
3506 ;; Tracked objects: |
3507 ;; On entry : 0/0 |
3508 ;; On exit : 0/0 |
3509 ;; Unchanged: 0/0 |
3510 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
3511 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3512 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3513 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3514 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3515 ;;Total ram usage: 0 bytes |
3516 ;; Hardware stack levels used: 1 |
3517 ;; Hardware stack levels required when called: 4 |
3518 ;; This function calls: |
3519 ;; Nothing |
3520 ;; This function is called by: |
3521 ;; _main |
3522 ;; This function uses a non-reentrant model |
3523 ;; |
3524 |
3525 |
3526 ;psect for function _Pins_Init |
3527 0BF5 _Pins_Init: |
3528 |
3529 ;main.c: 33: ANSELA = 0x0; |
3530 |
3531 ;incstack = 0 |
3532 ; Regs used in _Pins_Init: [status,2] |
3533 0BF5 0023 movlb 3 ; select bank3 |
3534 0BF6 018C clrf 12 ;volatile |
3535 |
3536 ;main.c: 34: ANSELB = 0x0; |
3537 0BF7 018D clrf 13 ;volatile |
3538 |
3539 ;main.c: 35: ANSELC = 0x0; |
3540 0BF8 018E clrf 14 ;volatile |
3541 |
3542 ;main.c: 38: OPTION_REGbits.nWPUEN = 0; |
3543 0BF9 0021 movlb 1 ; select bank1 |
3544 0BFA 1395 bcf 21,7 ;volatile |
3545 |
3546 ;main.c: 41: TRISAbits.TRISA5 = 1; |
3547 0BFB 168C bsf 12,5 ;volatile |
3548 |
3549 ;main.c: 42: TRISAbits.TRISA4 = 1; |
3550 0BFC 160C bsf 12,4 ;volatile |
3551 |
3552 ;main.c: 43: TRISAbits.TRISA2 = 1; |
3553 0BFD 150C bsf 12,2 ;volatile |
3554 |
3555 ;main.c: 46: TRISCbits.TRISC5 = 1; |
3556 0BFE 168E bsf 14,5 ;volatile |
3557 |
3558 ;main.c: 47: TRISCbits.TRISC4 = 0; |
3559 0BFF 120E bcf 14,4 ;volatile |
3560 |
3561 ;main.c: 50: TRISCbits.TRISC0 = 1; |
3562 0C00 140E bsf 14,0 ;volatile |
3563 |
3564 ;main.c: 51: TRISCbits.TRISC1 = 1; |
3565 0C01 148E bsf 14,1 ;volatile |
3566 |
3567 ;main.c: 52: TRISCbits.TRISC2 = 1; |
3568 0C02 150E bsf 14,2 ;volatile |
3569 |
3570 ;main.c: 53: TRISCbits.TRISC3 = 1; |
3571 0C03 158E bsf 14,3 ;volatile |
3572 |
3573 ;main.c: 55: WPUCbits.WPUC0 = 1; |
3574 0C04 0024 movlb 4 ; select bank4 |
3575 0C05 140E bsf 14,0 ;volatile |
3576 |
3577 ;main.c: 56: WPUCbits.WPUC1 = 1; |
3578 0C06 148E bsf 14,1 ;volatile |
3579 |
3580 ;main.c: 57: WPUCbits.WPUC2 = 1; |
3581 0C07 150E bsf 14,2 ;volatile |
3582 |
3583 ;main.c: 58: WPUCbits.WPUC3 = 1; |
3584 0C08 158E bsf 14,3 ;volatile |
3585 |
3586 ;main.c: 61: TRISBbits.TRISB6 = 1; |
3587 0C09 0021 movlb 1 ; select bank1 |
3588 0C0A 170D bsf 13,6 ;volatile |
3589 |
3590 ;main.c: 62: TRISBbits.TRISB4 = 1; |
3591 0C0B 160D bsf 13,4 ;volatile |
3592 |
3593 ;main.c: 63: TRISBbits.TRISB7 = 1; |
3594 0C0C 178D bsf 13,7 ;volatile |
3595 |
3596 ;main.c: 64: TRISBbits.TRISB5 = 1; |
3597 0C0D 168D bsf 13,5 ;volatile |
3598 0C0E 0008 return |
3599 0C0F __end_of_Pins_Init: |
3600 |
3601 psect intentry |
3602 0004 __pintentry: |
3603 ;; *************** function _InterruptHandler ***************** |
3604 ;; Defined at: |
3605 ;; line 21 in file "INTERRUPTS.c" |
3606 ;; Parameters: Size Location Type |
3607 ;; None |
3608 ;; Auto vars: Size Location Type |
3609 ;; None |
3610 ;; Return value: Size Location Type |
3611 ;; None void |
3612 ;; Registers used: |
3613 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack |
3614 ;; Tracked objects: |
3615 ;; On entry : 0/0 |
3616 ;; On exit : 0/0 |
3617 ;; Unchanged: 0/0 |
3618 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
3619 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3620 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3621 ;; Temps: 1 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3622 ;; Totals: 1 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3623 ;;Total ram usage: 1 bytes |
3624 ;; Hardware stack levels used: 1 |
3625 ;; Hardware stack levels required when called: 3 |
3626 ;; This function calls: |
3627 ;; _I2C1_Interrupt_Handler |
3628 ;; _I2C2_Interrupt_Handler |
3629 ;; This function is called by: |
3630 ;; Interrupt level 1 |
3631 ;; This function uses a non-reentrant model |
3632 ;; |
3633 |
3634 0004 _InterruptHandler: |
3635 |
3636 ;incstack = 0 |
3637 ; Regs used in _InterruptHandler: [wreg-fsr1h+status,2+status,0+pclath+cstack] |
3638 0004 3180 pagesel $ |
3639 0005 0020 movlb 0 ; select bank0 |
3640 0006 087F movf 127,w |
3641 0007 00F8 movwf ??_InterruptHandler |
3642 |
3643 ;INTERRUPTS.c: 37: if (PIR1bits.SSP1IF) { |
3644 0008 1D91 btfss 17,3 ;volatile |
3645 0009 2810 goto i1l271 |
3646 |
3647 ;INTERRUPTS.c: 40: I2C1_Interrupt_Handler(); |
3648 000A 318B 23C5 3180 fcall _I2C1_Interrupt_Handler |
3649 |
3650 ;INTERRUPTS.c: 43: PIR1bits.SSP1IF = 0; |
3651 000D 0020 movlb 0 ; select bank0 |
3652 000E 1191 bcf 17,3 ;volatile |
3653 |
3654 ;INTERRUPTS.c: 45: return; |
3655 000F 2816 goto i1l272 |
3656 0010 i1l271: |
3657 |
3658 ;INTERRUPTS.c: 46: } |
3659 ;INTERRUPTS.c: 49: if (PIR4bits.SSP2IF) { |
3660 0010 1C14 btfss 20,0 ;volatile |
3661 0011 2816 goto i1l272 |
3662 |
3663 ;INTERRUPTS.c: 51: I2C2_Interrupt_Handler(); |
3664 0012 318B 23DB fcall _I2C2_Interrupt_Handler |
3665 |
3666 ;INTERRUPTS.c: 54: PIR4bits.SSP2IF = 0; |
3667 0014 0020 movlb 0 ; select bank0 |
3668 0015 1014 bcf 20,0 ;volatile |
3669 0016 i1l272: |
3670 ;INTERRUPTS.c: 56: return; |
3671 |
3672 0016 0878 movf ??_InterruptHandler,w |
3673 0017 00FF movwf 127 |
3674 0018 0009 retfie |
3675 0019 __end_of_InterruptHandler: |
3676 |
3677 psect text18 |
3678 0BDB __ptext18: |
3679 ;; *************** function _I2C2_Interrupt_Handler ***************** |
3680 ;; Defined at: |
3681 ;; line 138 in file "I2C2.c" |
3682 ;; Parameters: Size Location Type |
3683 ;; None |
3684 ;; Auto vars: Size Location Type |
3685 ;; None |
3686 ;; Return value: Size Location Type |
3687 ;; None void |
3688 ;; Registers used: |
3689 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack |
3690 ;; Tracked objects: |
3691 ;; On entry : 0/0 |
3692 ;; On exit : 0/0 |
3693 ;; Unchanged: 0/0 |
3694 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
3695 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3696 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3697 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3698 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3699 ;;Total ram usage: 0 bytes |
3700 ;; Hardware stack levels used: 1 |
3701 ;; Hardware stack levels required when called: 2 |
3702 ;; This function calls: |
3703 ;; _I2C2_Interrupt_Master |
3704 ;; _I2C2_Interrupt_Slave |
3705 ;; This function is called by: |
3706 ;; _InterruptHandler |
3707 ;; This function uses a non-reentrant model |
3708 ;; |
3709 |
3710 |
3711 ;psect for function _I2C2_Interrupt_Handler |
3712 0BDB _I2C2_Interrupt_Handler: |
3713 |
3714 ;I2C2.c: 140: if (i2c_data_p->operating_mode == 0x11) { |
3715 |
3716 ;incstack = 0 |
3717 ; Regs used in _I2C2_Interrupt_Handler: [wreg-fsr1h+status,2+status,0+pclath+cstack] |
3718 0BDB 0020 movlb 0 ; select bank0 |
3719 0BDC 0869 movf I2C2@i2c_data_p,w |
3720 0BDD 3E46 addlw 70 |
3721 0BDE 0086 movwf 6 |
3722 0BDF 3001 movlw 1 ; select bank2/3 |
3723 0BE0 0087 movwf 7 |
3724 0BE1 0801 movf 1,w |
3725 0BE2 3A11 xorlw 17 |
3726 0BE3 1D03 skipz |
3727 0BE4 2BE8 goto i1l3171 |
3728 |
3729 ;I2C2.c: 141: I2C2_Interrupt_Master(); |
3730 0BE5 3180 201B fcall _I2C2_Interrupt_Master |
3731 |
3732 ;I2C2.c: 142: } else if (i2c_data_p->operating_mode == 0x10) { |
3733 0BE7 0008 return |
3734 0BE8 i1l3171: |
3735 0BE8 0020 movlb 0 ; select bank0 |
3736 0BE9 0869 movf I2C2@i2c_data_p,w |
3737 0BEA 3E46 addlw 70 |
3738 0BEB 0086 movwf 6 |
3739 0BEC 3001 movlw 1 ; select bank2/3 |
3740 0BED 0087 movwf 7 |
3741 0BEE 0801 movf 1,w |
3742 0BEF 3A10 xorlw 16 |
3743 0BF0 1D03 skipz |
3744 0BF1 0008 return |
3745 |
3746 ;I2C2.c: 143: I2C2_Interrupt_Slave(); |
3747 0BF2 3185 2534 fcall _I2C2_Interrupt_Slave |
3748 0BF4 0008 return |
3749 0BF5 __end_of_I2C2_Interrupt_Handler: |
3750 |
3751 psect text19 |
3752 0534 __ptext19: |
3753 ;; *************** function _I2C2_Interrupt_Slave ***************** |
3754 ;; Defined at: |
3755 ;; line 327 in file "I2C2.c" |
3756 ;; Parameters: Size Location Type |
3757 ;; None |
3758 ;; Auto vars: Size Location Type |
3759 ;; data_read_fr 1 7[COMMON] unsigned char |
3760 ;; received_dat 1 6[COMMON] unsigned char |
3761 ;; data_written 1 5[COMMON] unsigned char |
3762 ;; overrun_erro 1 4[COMMON] unsigned char |
3763 ;; Return value: Size Location Type |
3764 ;; None void |
3765 ;; Registers used: |
3766 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack |
3767 ;; Tracked objects: |
3768 ;; On entry : 0/0 |
3769 ;; On exit : 0/0 |
3770 ;; Unchanged: 0/0 |
3771 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
3772 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3773 ;; Locals: 4 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3774 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3775 ;; Totals: 6 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
3776 ;;Total ram usage: 6 bytes |
3777 ;; Hardware stack levels used: 1 |
3778 ;; Hardware stack levels required when called: 1 |
3779 ;; This function calls: |
3780 ;; _I2C2_Process_Receive |
3781 ;; This function is called by: |
3782 ;; _I2C2_Interrupt_Handler |
3783 ;; This function uses a non-reentrant model |
3784 ;; |
3785 |
3786 |
3787 ;psect for function _I2C2_Interrupt_Slave |
3788 0534 _I2C2_Interrupt_Slave: |
3789 |
3790 ;I2C2.c: 328: uint8_t received_data; |
3791 ;I2C2.c: 329: uint8_t data_read_from_buffer = 0; |
3792 |
3793 ;incstack = 0 |
3794 ; Regs used in _I2C2_Interrupt_Slave: [wreg-fsr1h+status,2+status,0+pclath+cstack] |
3795 0534 01F7 clrf I2C2_Interrupt_Slave@data_read_from_buffer |
3796 |
3797 ;I2C2.c: 330: uint8_t data_written_to_buffer = 0; |
3798 0535 01F5 clrf I2C2_Interrupt_Slave@data_written_to_buffer |
3799 |
3800 ;I2C2.c: 331: uint8_t overrun_error = 0; |
3801 0536 01F4 clrf I2C2_Interrupt_Slave@overrun_error |
3802 |
3803 ;I2C2.c: 334: if (SSP2CON1bits.SSPOV == 1) { |
3804 0537 0024 movlb 4 ; select bank4 |
3805 0538 1F1D btfss 29,6 ;volatile |
3806 0539 2D4E goto i1l3053 |
3807 |
3808 ;I2C2.c: 335: SSP2CON1bits.SSPOV = 0; |
3809 053A 131D bcf 29,6 ;volatile |
3810 |
3811 ;I2C2.c: 339: i2c_data_p->operating_state = 0x1; |
3812 053B 0020 movlb 0 ; select bank0 |
3813 053C 0869 movf I2C2@i2c_data_p,w |
3814 053D 3E47 addlw 71 |
3815 053E 0086 movwf 6 |
3816 053F 3001 movlw 1 ; select bank2/3 |
3817 0540 0087 movwf 7 |
3818 0541 0181 clrf 1 |
3819 0542 0A81 incf 1,f |
3820 |
3821 ;I2C2.c: 340: overrun_error = 1; |
3822 0543 01F4 clrf I2C2_Interrupt_Slave@overrun_error |
3823 0544 0AF4 incf I2C2_Interrupt_Slave@overrun_error,f |
3824 |
3825 ;I2C2.c: 341: i2c_data_p->return_status = 0x36; |
3826 0545 3036 movlw 54 |
3827 0546 00F2 movwf ??_I2C2_Interrupt_Slave |
3828 0547 0869 movf I2C2@i2c_data_p,w |
3829 0548 3E48 addlw 72 |
3830 0549 0086 movwf 6 |
3831 054A 3001 movlw 1 ; select bank2/3 |
3832 054B 0087 movwf 7 |
3833 054C 0872 movf ??_I2C2_Interrupt_Slave,w |
3834 054D 0081 movwf 1 |
3835 054E i1l3053: |
3836 |
3837 ;I2C2.c: 342: } |
3838 ;I2C2.c: 345: if (SSP2STATbits.BF == 1) { |
3839 054E 0024 movlb 4 ; select bank4 |
3840 054F 1C1C btfss 28,0 ;volatile |
3841 0550 2D57 goto i1l3059 |
3842 |
3843 ;I2C2.c: 346: received_data = SSP2BUF; |
3844 0551 0819 movf 25,w ;volatile |
3845 0552 00F2 movwf ??_I2C2_Interrupt_Slave |
3846 0553 0872 movf ??_I2C2_Interrupt_Slave,w |
3847 0554 00F6 movwf I2C2_Interrupt_Slave@received_data |
3848 |
3849 ;I2C2.c: 348: data_read_from_buffer = 1; |
3850 0555 01F7 clrf I2C2_Interrupt_Slave@data_read_from_buffer |
3851 0556 0AF7 incf I2C2_Interrupt_Slave@data_read_from_buffer,f |
3852 0557 i1l3059: |
3853 |
3854 ;I2C2.c: 349: } |
3855 ;I2C2.c: 351: if (!overrun_error) { |
3856 0557 08F4 movf I2C2_Interrupt_Slave@overrun_error,f |
3857 0558 1903 btfsc 3,2 |
3858 0559 2EBE goto i1l3151 |
3859 055A 2ED2 goto i1l3153 |
3860 055B i1l388: |
3861 ;I2C2.c: 353: case 0x1: |
3862 |
3863 ;I2C2.c: 352: switch (i2c_data_p->operating_state) { |
3864 |
3865 |
3866 ;I2C2.c: 354: { |
3867 ;I2C2.c: 356: if (SSP2STATbits.S == 1) { |
3868 055B 0024 movlb 4 ; select bank4 |
3869 055C 1D9C btfss 28,3 ;volatile |
3870 055D 2ED2 goto i1l3153 |
3871 |
3872 ;I2C2.c: 357: i2c_data_p->buffer_in_len_tmp = 0; |
3873 055E 0020 movlb 0 ; select bank0 |
3874 055F 0869 movf I2C2@i2c_data_p,w |
3875 0560 3E21 addlw 33 |
3876 0561 0086 movwf 6 |
3877 0562 3001 movlw 1 ; select bank2/3 |
3878 0563 0087 movwf 7 |
3879 0564 0181 clrf 1 |
3880 |
3881 ;I2C2.c: 358: i2c_data_p->operating_state = 0x2; |
3882 0565 3002 movlw 2 |
3883 0566 00F2 movwf ??_I2C2_Interrupt_Slave |
3884 0567 2D78 goto L2 |
3885 0568 i1l391: |
3886 ;I2C2.c: 361: } |
3887 ;I2C2.c: 362: case 0x2: |
3888 |
3889 ;I2C2.c: 359: } |
3890 ;I2C2.c: 360: break; |
3891 |
3892 |
3893 ;I2C2.c: 363: { |
3894 ;I2C2.c: 365: if (SSP2STATbits.P == 1) { |
3895 0568 0024 movlb 4 ; select bank4 |
3896 0569 1E1C btfss 28,4 ;volatile |
3897 056A 2D6D goto i1l3069 |
3898 |
3899 ;I2C2.c: 367: i2c_data_p->operating_state = 0x1; |
3900 056B 0020 movlb 0 ; select bank0 |
3901 056C 2E4C goto i1l3123 |
3902 056D i1l3069: |
3903 ;I2C2.c: 368: } else if (data_read_from_buffer) { |
3904 |
3905 056D 0877 movf I2C2_Interrupt_Slave@data_read_from_buffer,w |
3906 056E 1903 btfsc 3,2 |
3907 056F 2ED2 goto i1l3153 |
3908 |
3909 ;I2C2.c: 369: if (SSP2STATbits.D_nA == 0) { |
3910 0570 0024 movlb 4 ; select bank4 |
3911 0571 1A9C btfsc 28,5 ;volatile |
3912 0572 2EAC goto i1l3147 |
3913 |
3914 ;I2C2.c: 371: if (SSP2STATbits.R_nW == 0) { |
3915 0573 191C btfsc 28,2 ;volatile |
3916 0574 2D7B goto i1l3077 |
3917 |
3918 ;I2C2.c: 373: i2c_data_p->operating_state = 0x3; |
3919 0575 3003 movlw 3 |
3920 0576 00F2 movwf ??_I2C2_Interrupt_Slave |
3921 0577 0020 movlb 0 ; select bank0 |
3922 0578 L2: |
3923 0578 0869 movf I2C2@i2c_data_p,w |
3924 0579 3E47 addlw 71 |
3925 057A 2EB8 goto L7 |
3926 057B i1l3077: |
3927 ;I2C2.c: 374: } else { |
3928 |
3929 |
3930 ;I2C2.c: 376: i2c_data_p->operating_state = 0x4; |
3931 057B 3004 movlw 4 |
3932 057C 00F2 movwf ??_I2C2_Interrupt_Slave |
3933 057D 0020 movlb 0 ; select bank0 |
3934 057E L4: |
3935 057E 0869 movf I2C2@i2c_data_p,w |
3936 057F 3E47 addlw 71 |
3937 0580 0086 movwf 6 |
3938 0581 3001 movlw 1 ; select bank2/3 |
3939 0582 0087 movwf 7 |
3940 0583 0872 movf ??_I2C2_Interrupt_Slave,w |
3941 0584 0081 movwf 1 |
3942 0585 i1l3081: |
3943 ;I2C2.c: 388: case 0x4: |
3944 |
3945 ;I2C2.c: 386: } |
3946 ;I2C2.c: 387: send: |
3947 |
3948 ;I2C2.c: 383: } |
3949 ;I2C2.c: 384: } |
3950 ;I2C2.c: 385: break; |
3951 |
3952 ;I2C2.c: 382: i2c_data_p->return_status = 0x37; |
3953 |
3954 ;I2C2.c: 381: i2c_data_p->operating_state = 0x1; |
3955 |
3956 ;I2C2.c: 379: } |
3957 ;I2C2.c: 380: } else { |
3958 |
3959 ;I2C2.c: 378: goto send; |
3960 |
3961 |
3962 ;I2C2.c: 389: { |
3963 ;I2C2.c: 390: if (!i2c_data_p->slave_sending_data) { |
3964 0585 0869 movf I2C2@i2c_data_p,w |
3965 0586 3E4C addlw 76 |
3966 0587 0086 movwf 6 |
3967 0588 3001 movlw 1 ; select bank2/3 |
3968 0589 0087 movwf 7 |
3969 058A 0881 movf 1,f |
3970 058B 1D03 skipz |
3971 058C 2DB4 goto i1l3093 |
3972 |
3973 ;I2C2.c: 392: if (I2C2_Process_Receive(i2c_data_p->slave_in_last_byte)) { |
3974 058D 0869 movf I2C2@i2c_data_p,w |
3975 058E 3E4B addlw 75 |
3976 058F 0086 movwf 6 |
3977 0590 3001 movlw 1 ; select bank2/3 |
3978 0591 0087 movwf 7 |
3979 0592 0801 movf 1,w |
3980 0593 318B 239B 3185 fcall _I2C2_Process_Receive |
3981 0596 3A00 xorlw 0 |
3982 0597 1903 skipnz |
3983 0598 2DB2 goto i1l3089 |
3984 |
3985 ;I2C2.c: 394: SSP2BUF = i2c_data_p->buffer_out[0]; |
3986 0599 0020 movlb 0 ; select bank0 |
3987 059A 0869 movf I2C2@i2c_data_p,w |
3988 059B 3E24 addlw 36 |
3989 059C 0086 movwf 6 |
3990 059D 3001 movlw 1 ; select bank2/3 |
3991 059E 0087 movwf 7 |
3992 059F 0801 movf 1,w |
3993 05A0 0024 movlb 4 ; select bank4 |
3994 05A1 0099 movwf 25 ;volatile |
3995 |
3996 ;I2C2.c: 395: i2c_data_p->buffer_out_ind = 1; |
3997 05A2 0020 movlb 0 ; select bank0 |
3998 05A3 0869 movf I2C2@i2c_data_p,w |
3999 05A4 3E45 addlw 69 |
4000 05A5 0086 movwf 6 |
4001 05A6 3001 movlw 1 ; select bank2/3 |
4002 05A7 0087 movwf 7 |
4003 05A8 0181 clrf 1 |
4004 05A9 0A81 incf 1,f |
4005 |
4006 ;I2C2.c: 396: i2c_data_p->slave_sending_data = 1; |
4007 05AA 0869 movf I2C2@i2c_data_p,w |
4008 05AB 3E4C addlw 76 |
4009 05AC 0086 movwf 6 |
4010 05AD 3001 movlw 1 ; select bank2/3 |
4011 05AE 0087 movwf 7 |
4012 05AF 0181 clrf 1 |
4013 05B0 0A81 incf 1,f |
4014 05B1 2DDC goto i1l3097 |
4015 05B2 i1l3089: |
4016 ;I2C2.c: 398: } else { |
4017 |
4018 ;I2C2.c: 397: data_written_to_buffer = 1; |
4019 |
4020 |
4021 ;I2C2.c: 400: i2c_data_p->slave_sending_data = 0; |
4022 05B2 0020 movlb 0 ; select bank0 |
4023 05B3 2DDF goto i1l3099 |
4024 05B4 i1l3093: |
4025 ;I2C2.c: 402: } |
4026 ;I2C2.c: 403: } else { |
4027 |
4028 ;I2C2.c: 401: i2c_data_p->operating_state = 0x1; |
4029 |
4030 |
4031 ;I2C2.c: 405: if (i2c_data_p->buffer_out_ind < i2c_data_p->buffer_out_len) { |
4032 05B4 0869 movf I2C2@i2c_data_p,w |
4033 05B5 3E45 addlw 69 |
4034 05B6 0086 movwf 6 |
4035 05B7 3001 movlw 1 ; select bank2/3 |
4036 05B8 0087 movwf 7 |
4037 05B9 0869 movf I2C2@i2c_data_p,w |
4038 05BA 3E44 addlw 68 |
4039 05BB 0084 movwf 4 |
4040 05BC 3001 movlw 1 ; select bank2/3 |
4041 05BD 0085 movwf 5 |
4042 05BE 0800 movf 0,w |
4043 05BF 0201 subwf 1,w |
4044 05C0 1803 skipnc |
4045 05C1 2DDF goto i1l3099 |
4046 |
4047 ;I2C2.c: 406: SSP2BUF = i2c_data_p->buffer_out[i2c_data_p->buffer_out_ind]; |
4048 05C2 0869 movf I2C2@i2c_data_p,w |
4049 05C3 3E45 addlw 69 |
4050 05C4 0086 movwf 6 |
4051 05C5 3001 movlw 1 ; select bank2/3 |
4052 05C6 0087 movwf 7 |
4053 05C7 0801 movf 1,w |
4054 05C8 3E24 addlw 36 |
4055 05C9 0769 addwf I2C2@i2c_data_p,w |
4056 05CA 00F2 movwf ??_I2C2_Interrupt_Slave |
4057 05CB 0872 movf ??_I2C2_Interrupt_Slave,w |
4058 05CC 0086 movwf 6 |
4059 05CD 3001 movlw 1 ; select bank2/3 |
4060 05CE 0087 movwf 7 |
4061 05CF 0801 movf 1,w |
4062 05D0 0024 movlb 4 ; select bank4 |
4063 05D1 0099 movwf 25 ;volatile |
4064 |
4065 ;I2C2.c: 407: i2c_data_p->buffer_out_ind++; |
4066 05D2 3001 movlw 1 |
4067 05D3 00F2 movwf ??_I2C2_Interrupt_Slave |
4068 05D4 0020 movlb 0 ; select bank0 |
4069 05D5 0869 movf I2C2@i2c_data_p,w |
4070 05D6 3E45 addlw 69 |
4071 05D7 0086 movwf 6 |
4072 05D8 3001 movlw 1 ; select bank2/3 |
4073 05D9 0087 movwf 7 |
4074 05DA 0872 movf ??_I2C2_Interrupt_Slave,w |
4075 05DB 0781 addwf 1,f |
4076 05DC i1l3097: |
4077 |
4078 ;I2C2.c: 408: data_written_to_buffer = 1; |
4079 05DC 01F5 clrf I2C2_Interrupt_Slave@data_written_to_buffer |
4080 05DD 0AF5 incf I2C2_Interrupt_Slave@data_written_to_buffer,f |
4081 |
4082 ;I2C2.c: 409: } else { |
4083 05DE 2ED2 goto i1l3153 |
4084 05DF i1l3099: |
4085 |
4086 ;I2C2.c: 411: i2c_data_p->slave_sending_data = 0; |
4087 05DF 0869 movf I2C2@i2c_data_p,w |
4088 05E0 3E4C addlw 76 |
4089 05E1 0086 movwf 6 |
4090 05E2 3001 movlw 1 ; select bank2/3 |
4091 05E3 0087 movwf 7 |
4092 05E4 0181 clrf 1 |
4093 05E5 2E4C goto i1l3123 |
4094 05E6 i1l407: |
4095 ;I2C2.c: 416: } |
4096 ;I2C2.c: 417: case 0x3: |
4097 |
4098 ;I2C2.c: 413: } |
4099 ;I2C2.c: 414: } |
4100 ;I2C2.c: 415: break; |
4101 |
4102 ;I2C2.c: 412: i2c_data_p->operating_state = 0x1; |
4103 |
4104 |
4105 ;I2C2.c: 418: { |
4106 ;I2C2.c: 420: if (SSP2STATbits.P == 1) { |
4107 05E6 0024 movlb 4 ; select bank4 |
4108 05E7 1E1C btfss 28,4 ;volatile |
4109 05E8 2E54 goto i1l3125 |
4110 |
4111 ;I2C2.c: 422: if (data_read_from_buffer) { |
4112 05E9 0877 movf I2C2_Interrupt_Slave@data_read_from_buffer,w |
4113 05EA 1903 btfsc 3,2 |
4114 05EB 2E3D goto i1l3121 |
4115 |
4116 ;I2C2.c: 423: if (SSP2STATbits.D_nA == 1) { |
4117 05EC 1E9C btfss 28,5 ;volatile |
4118 05ED 2E2C goto i1l3119 |
4119 |
4120 ;I2C2.c: 426: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = received_data; |
4121 05EE 0876 movf I2C2_Interrupt_Slave@received_data,w |
4122 05EF 00F2 movwf ??_I2C2_Interrupt_Slave |
4123 05F0 0020 movlb 0 ; select bank0 |
4124 05F1 0869 movf I2C2@i2c_data_p,w |
4125 05F2 3E23 addlw 35 |
4126 05F3 0086 movwf 6 |
4127 05F4 3001 movlw 1 ; select bank2/3 |
4128 05F5 0087 movwf 7 |
4129 05F6 0801 movf 1,w |
4130 05F7 0769 addwf I2C2@i2c_data_p,w |
4131 05F8 00F3 movwf ??_I2C2_Interrupt_Slave+1 |
4132 05F9 0873 movf ??_I2C2_Interrupt_Slave+1,w |
4133 05FA 0086 movwf 6 |
4134 05FB 3001 movlw 1 ; select bank2/3 |
4135 05FC 0087 movwf 7 |
4136 05FD 0872 movf ??_I2C2_Interrupt_Slave,w |
4137 05FE 0081 movwf 1 |
4138 |
4139 ;I2C2.c: 427: if (i2c_data_p->buffer_in_write_ind == 32-1) { |
4140 05FF 0869 movf I2C2@i2c_data_p,w |
4141 0600 3E23 addlw 35 |
4142 0601 0086 movwf 6 |
4143 0602 3001 movlw 1 ; select bank2/3 |
4144 0603 0087 movwf 7 |
4145 0604 0801 movf 1,w |
4146 0605 3A1F xorlw 31 |
4147 0606 1D03 skipz |
4148 0607 2E0F goto i1l3113 |
4149 |
4150 ;I2C2.c: 428: i2c_data_p->buffer_in_write_ind = 0; |
4151 0608 0869 movf I2C2@i2c_data_p,w |
4152 0609 3E23 addlw 35 |
4153 060A 0086 movwf 6 |
4154 060B 3001 movlw 1 ; select bank2/3 |
4155 060C 0087 movwf 7 |
4156 060D 0181 clrf 1 |
4157 |
4158 ;I2C2.c: 429: } else { |
4159 060E 2E18 goto i1l412 |
4160 060F i1l3113: |
4161 |
4162 ;I2C2.c: 430: i2c_data_p->buffer_in_write_ind++; |
4163 060F 3001 movlw 1 |
4164 0610 00F2 movwf ??_I2C2_Interrupt_Slave |
4165 0611 0869 movf I2C2@i2c_data_p,w |
4166 0612 3E23 addlw 35 |
4167 0613 0086 movwf 6 |
4168 0614 3001 movlw 1 ; select bank2/3 |
4169 0615 0087 movwf 7 |
4170 0616 0872 movf ??_I2C2_Interrupt_Slave,w |
4171 0617 0781 addwf 1,f |
4172 0618 i1l412: |
4173 |
4174 ;I2C2.c: 431: } |
4175 ;I2C2.c: 432: i2c_data_p->buffer_in_len_tmp++; |
4176 0618 3001 movlw 1 |
4177 0619 00F2 movwf ??_I2C2_Interrupt_Slave |
4178 061A 0869 movf I2C2@i2c_data_p,w |
4179 061B 3E21 addlw 33 |
4180 061C 0086 movwf 6 |
4181 061D 3001 movlw 1 ; select bank2/3 |
4182 061E 0087 movwf 7 |
4183 061F 0872 movf ??_I2C2_Interrupt_Slave,w |
4184 0620 0781 addwf 1,f |
4185 |
4186 ;I2C2.c: 434: i2c_data_p->slave_in_last_byte = received_data; |
4187 0621 0876 movf I2C2_Interrupt_Slave@received_data,w |
4188 0622 00F2 movwf ??_I2C2_Interrupt_Slave |
4189 0623 0869 movf I2C2@i2c_data_p,w |
4190 0624 3E4B addlw 75 |
4191 0625 0086 movwf 6 |
4192 0626 3001 movlw 1 ; select bank2/3 |
4193 0627 0087 movwf 7 |
4194 0628 0872 movf ??_I2C2_Interrupt_Slave,w |
4195 0629 0081 movwf 1 |
4196 |
4197 ;I2C2.c: 435: i2c_data_p->return_status = 0x34; |
4198 062A 3034 movlw 52 |
4199 062B 2E35 goto L6 |
4200 062C i1l3119: |
4201 ;I2C2.c: 436: } else { |
4202 |
4203 |
4204 ;I2C2.c: 437: i2c_data_p->operating_state = 0x1; |
4205 062C 0020 movlb 0 ; select bank0 |
4206 062D 0869 movf I2C2@i2c_data_p,w |
4207 062E 3E47 addlw 71 |
4208 062F 0086 movwf 6 |
4209 0630 3001 movlw 1 ; select bank2/3 |
4210 0631 0087 movwf 7 |
4211 0632 0181 clrf 1 |
4212 0633 0A81 incf 1,f |
4213 |
4214 ;I2C2.c: 438: i2c_data_p->return_status = 0x37; |
4215 0634 3037 movlw 55 |
4216 0635 L6: |
4217 0635 00F2 movwf ??_I2C2_Interrupt_Slave |
4218 0636 0869 movf I2C2@i2c_data_p,w |
4219 0637 3E48 addlw 72 |
4220 0638 0086 movwf 6 |
4221 0639 3001 movlw 1 ; select bank2/3 |
4222 063A 0087 movwf 7 |
4223 063B 0872 movf ??_I2C2_Interrupt_Slave,w |
4224 063C 0081 movwf 1 |
4225 063D i1l3121: |
4226 |
4227 ;I2C2.c: 439: } |
4228 ;I2C2.c: 440: } |
4229 ;I2C2.c: 441: i2c_data_p->buffer_in_len += i2c_data_p->buffer_in_len_tmp; |
4230 063D 0020 movlb 0 ; select bank0 |
4231 063E 0869 movf I2C2@i2c_data_p,w |
4232 063F 3E21 addlw 33 |
4233 0640 0086 movwf 6 |
4234 0641 3001 movlw 1 ; select bank2/3 |
4235 0642 0087 movwf 7 |
4236 0643 0801 movf 1,w |
4237 0644 00F2 movwf ??_I2C2_Interrupt_Slave |
4238 0645 0869 movf I2C2@i2c_data_p,w |
4239 0646 3E20 addlw 32 |
4240 0647 0086 movwf 6 |
4241 0648 3001 movlw 1 ; select bank2/3 |
4242 0649 0087 movwf 7 |
4243 064A 0872 movf ??_I2C2_Interrupt_Slave,w |
4244 064B 0781 addwf 1,f |
4245 064C i1l3123: |
4246 |
4247 ;I2C2.c: 442: i2c_data_p->operating_state = 0x1; |
4248 064C 0869 movf I2C2@i2c_data_p,w |
4249 064D 3E47 addlw 71 |
4250 064E 0086 movwf 6 |
4251 064F 3001 movlw 1 ; select bank2/3 |
4252 0650 0087 movwf 7 |
4253 0651 0181 clrf 1 |
4254 0652 0A81 incf 1,f |
4255 |
4256 ;I2C2.c: 443: } else if (data_read_from_buffer) { |
4257 0653 2ED2 goto i1l3153 |
4258 0654 i1l3125: |
4259 0654 0877 movf I2C2_Interrupt_Slave@data_read_from_buffer,w |
4260 0655 1903 btfsc 3,2 |
4261 0656 2ED2 goto i1l3153 |
4262 |
4263 ;I2C2.c: 444: if (SSP2STATbits.D_nA == 1) { |
4264 0657 0024 movlb 4 ; select bank4 |
4265 0658 1E9C btfss 28,5 ;volatile |
4266 0659 2E98 goto i1l416 |
4267 |
4268 ;I2C2.c: 446: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = received_data; |
4269 065A 0876 movf I2C2_Interrupt_Slave@received_data,w |
4270 065B 00F2 movwf ??_I2C2_Interrupt_Slave |
4271 065C 0020 movlb 0 ; select bank0 |
4272 065D 0869 movf I2C2@i2c_data_p,w |
4273 065E 3E23 addlw 35 |
4274 065F 0086 movwf 6 |
4275 0660 3001 movlw 1 ; select bank2/3 |
4276 0661 0087 movwf 7 |
4277 0662 0801 movf 1,w |
4278 0663 0769 addwf I2C2@i2c_data_p,w |
4279 0664 00F3 movwf ??_I2C2_Interrupt_Slave+1 |
4280 0665 0873 movf ??_I2C2_Interrupt_Slave+1,w |
4281 0666 0086 movwf 6 |
4282 0667 3001 movlw 1 ; select bank2/3 |
4283 0668 0087 movwf 7 |
4284 0669 0872 movf ??_I2C2_Interrupt_Slave,w |
4285 066A 0081 movwf 1 |
4286 |
4287 ;I2C2.c: 447: if (i2c_data_p->buffer_in_write_ind == 32-1) { |
4288 066B 0869 movf I2C2@i2c_data_p,w |
4289 066C 3E23 addlw 35 |
4290 066D 0086 movwf 6 |
4291 066E 3001 movlw 1 ; select bank2/3 |
4292 066F 0087 movwf 7 |
4293 0670 0801 movf 1,w |
4294 0671 3A1F xorlw 31 |
4295 0672 1D03 skipz |
4296 0673 2E7B goto i1l3135 |
4297 |
4298 ;I2C2.c: 448: i2c_data_p->buffer_in_write_ind = 0; |
4299 0674 0869 movf I2C2@i2c_data_p,w |
4300 0675 3E23 addlw 35 |
4301 0676 0086 movwf 6 |
4302 0677 3001 movlw 1 ; select bank2/3 |
4303 0678 0087 movwf 7 |
4304 0679 0181 clrf 1 |
4305 |
4306 ;I2C2.c: 449: } else { |
4307 067A 2E84 goto i1l418 |
4308 067B i1l3135: |
4309 |
4310 ;I2C2.c: 450: i2c_data_p->buffer_in_write_ind++; |
4311 067B 3001 movlw 1 |
4312 067C 00F2 movwf ??_I2C2_Interrupt_Slave |
4313 067D 0869 movf I2C2@i2c_data_p,w |
4314 067E 3E23 addlw 35 |
4315 067F 0086 movwf 6 |
4316 0680 3001 movlw 1 ; select bank2/3 |
4317 0681 0087 movwf 7 |
4318 0682 0872 movf ??_I2C2_Interrupt_Slave,w |
4319 0683 0781 addwf 1,f |
4320 0684 i1l418: |
4321 |
4322 ;I2C2.c: 451: } |
4323 ;I2C2.c: 452: i2c_data_p->buffer_in_len_tmp++; |
4324 0684 3001 movlw 1 |
4325 0685 00F2 movwf ??_I2C2_Interrupt_Slave |
4326 0686 0869 movf I2C2@i2c_data_p,w |
4327 0687 3E21 addlw 33 |
4328 0688 0086 movwf 6 |
4329 0689 3001 movlw 1 ; select bank2/3 |
4330 068A 0087 movwf 7 |
4331 068B 0872 movf ??_I2C2_Interrupt_Slave,w |
4332 068C 0781 addwf 1,f |
4333 |
4334 ;I2C2.c: 454: i2c_data_p->slave_in_last_byte = received_data; |
4335 068D 0876 movf I2C2_Interrupt_Slave@received_data,w |
4336 068E 00F2 movwf ??_I2C2_Interrupt_Slave |
4337 068F 0869 movf I2C2@i2c_data_p,w |
4338 0690 3E4B addlw 75 |
4339 0691 0086 movwf 6 |
4340 0692 3001 movlw 1 ; select bank2/3 |
4341 0693 0087 movwf 7 |
4342 0694 0872 movf ??_I2C2_Interrupt_Slave,w |
4343 0695 0081 movwf 1 |
4344 |
4345 ;I2C2.c: 455: i2c_data_p->return_status = 0x34; |
4346 0696 3034 movlw 52 |
4347 0697 2EB5 goto L8 |
4348 0698 i1l416: |
4349 ;I2C2.c: 456: } else { |
4350 |
4351 |
4352 ;I2C2.c: 458: if (SSP2STATbits.R_nW == 1) { |
4353 0698 1D1C btfss 28,2 ;volatile |
4354 0699 2EAC goto i1l3147 |
4355 |
4356 ;I2C2.c: 459: i2c_data_p->buffer_in_len += i2c_data_p->buffer_in_len_tmp; |
4357 069A 0020 movlb 0 ; select bank0 |
4358 069B 0869 movf I2C2@i2c_data_p,w |
4359 069C 3E21 addlw 33 |
4360 069D 0086 movwf 6 |
4361 069E 3001 movlw 1 ; select bank2/3 |
4362 069F 0087 movwf 7 |
4363 06A0 0801 movf 1,w |
4364 06A1 00F2 movwf ??_I2C2_Interrupt_Slave |
4365 06A2 0869 movf I2C2@i2c_data_p,w |
4366 06A3 3E20 addlw 32 |
4367 06A4 0086 movwf 6 |
4368 06A5 3001 movlw 1 ; select bank2/3 |
4369 06A6 0087 movwf 7 |
4370 06A7 0872 movf ??_I2C2_Interrupt_Slave,w |
4371 06A8 0781 addwf 1,f |
4372 |
4373 ;I2C2.c: 460: i2c_data_p->operating_state = 0x4; |
4374 06A9 3004 movlw 4 |
4375 06AA 00F2 movwf ??_I2C2_Interrupt_Slave |
4376 |
4377 ;I2C2.c: 462: goto send; |
4378 06AB 2D7E goto L4 |
4379 06AC i1l3147: |
4380 ;I2C2.c: 463: } else { |
4381 |
4382 |
4383 ;I2C2.c: 465: i2c_data_p->operating_state = 0x1; |
4384 06AC 0020 movlb 0 ; select bank0 |
4385 06AD 0869 movf I2C2@i2c_data_p,w |
4386 06AE 3E47 addlw 71 |
4387 06AF 0086 movwf 6 |
4388 06B0 3001 movlw 1 ; select bank2/3 |
4389 06B1 0087 movwf 7 |
4390 06B2 0181 clrf 1 |
4391 06B3 0A81 incf 1,f |
4392 |
4393 ;I2C2.c: 466: i2c_data_p->return_status = 0x37; |
4394 06B4 3037 movlw 55 |
4395 06B5 L8: |
4396 06B5 00F2 movwf ??_I2C2_Interrupt_Slave |
4397 06B6 0869 movf I2C2@i2c_data_p,w |
4398 06B7 3E48 addlw 72 |
4399 06B8 L7: |
4400 06B8 0086 movwf 6 |
4401 06B9 3001 movlw 1 ; select bank2/3 |
4402 06BA 0087 movwf 7 |
4403 06BB 0872 movf ??_I2C2_Interrupt_Slave,w |
4404 06BC 0081 movwf 1 |
4405 |
4406 ;I2C2.c: 471: } |
4407 ;I2C2.c: 472: } |
4408 |
4409 ;I2C2.c: 467: } |
4410 ;I2C2.c: 468: } |
4411 ;I2C2.c: 469: } |
4412 ;I2C2.c: 470: break; |
4413 06BD 2ED2 goto i1l3153 |
4414 06BE i1l3151: |
4415 06BE 0020 movlb 0 ; select bank0 |
4416 06BF 0869 movf I2C2@i2c_data_p,w |
4417 06C0 3E47 addlw 71 |
4418 06C1 0086 movwf 6 |
4419 06C2 3001 movlw 1 ; select bank2/3 |
4420 06C3 0087 movwf 7 |
4421 06C4 0801 movf 1,w |
4422 |
4423 ; Switch size 1, requested type "space" |
4424 ; Number of cases is 4, Range of values is 1 to 4 |
4425 ; switch strategies available: |
4426 ; Name Instructions Cycles |
4427 ; simple_byte 13 7 (average) |
4428 ; direct_byte 17 9 (fixed) |
4429 ; jumptable 263 9 (fixed) |
4430 ; Chosen strategy is simple_byte |
4431 06C5 3A01 xorlw 1 ; case 1 |
4432 06C6 1903 skipnz |
4433 06C7 2D5B goto i1l388 |
4434 06C8 3A03 xorlw 3 ; case 2 |
4435 06C9 1903 skipnz |
4436 06CA 2D68 goto i1l391 |
4437 06CB 3A01 xorlw 1 ; case 3 |
4438 06CC 1903 skipnz |
4439 06CD 2DE6 goto i1l407 |
4440 06CE 3A07 xorlw 7 ; case 4 |
4441 06CF 1903 skipnz |
4442 06D0 2D85 goto i1l3081 |
4443 06D1 2ED2 goto i1l3153 |
4444 06D2 i1l3153: |
4445 |
4446 ;I2C2.c: 473: } |
4447 ;I2C2.c: 476: if (data_read_from_buffer || data_written_to_buffer) { |
4448 06D2 08F7 movf I2C2_Interrupt_Slave@data_read_from_buffer,f |
4449 06D3 1903 btfsc 3,2 |
4450 06D4 0875 movf I2C2_Interrupt_Slave@data_written_to_buffer,w |
4451 06D5 1903 btfsc 3,2 |
4452 06D6 0008 return |
4453 |
4454 ;I2C2.c: 478: if (SSP2CON1bits.CKP == 0) { |
4455 06D7 0024 movlb 4 ; select bank4 |
4456 06D8 1A1D btfsc 29,4 ;volatile |
4457 06D9 0008 return |
4458 |
4459 ;I2C2.c: 479: SSP2CON1bits.CKP = 1; |
4460 06DA 161D bsf 29,4 ;volatile |
4461 06DB 0008 return |
4462 06DC __end_of_I2C2_Interrupt_Slave: |
4463 |
4464 psect text20 |
4465 0B9B __ptext20: |
4466 ;; *************** function _I2C2_Process_Receive ***************** |
4467 ;; Defined at: |
4468 ;; line 522 in file "I2C2.c" |
4469 ;; Parameters: Size Location Type |
4470 ;; c 1 wreg unsigned char |
4471 ;; Auto vars: Size Location Type |
4472 ;; c 1 0[COMMON] unsigned char |
4473 ;; ret 1 1[COMMON] unsigned char |
4474 ;; btns 1 0 struct . |
4475 ;; Return value: Size Location Type |
4476 ;; 1 wreg unsigned char |
4477 ;; Registers used: |
4478 ;; wreg, fsr0l, fsr0h, status,2, status,0 |
4479 ;; Tracked objects: |
4480 ;; On entry : 0/0 |
4481 ;; On exit : 0/0 |
4482 ;; Unchanged: 0/0 |
4483 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
4484 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
4485 ;; Locals: 2 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
4486 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
4487 ;; Totals: 2 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
4488 ;;Total ram usage: 2 bytes |
4489 ;; Hardware stack levels used: 1 |
4490 ;; This function calls: |
4491 ;; Nothing |
4492 ;; This function is called by: |
4493 ;; _I2C2_Interrupt_Slave |
4494 ;; This function uses a non-reentrant model |
4495 ;; |
4496 |
4497 |
4498 ;psect for function _I2C2_Process_Receive |
4499 0B9B _I2C2_Process_Receive: |
4500 |
4501 ;incstack = 0 |
4502 ; Regs used in _I2C2_Process_Receive: [wreg-fsr0h+status,2+status,0] |
4503 ;I2C2_Process_Receive@c stored from wreg |
4504 0B9B 00F0 movwf I2C2_Process_Receive@c |
4505 |
4506 ;I2C2.c: 523: uint8_t ret = 0; |
4507 0B9C 01F1 clrf I2C2_Process_Receive@ret |
4508 0B9D 0064 clrwdt ;# |
4509 |
4510 ;I2C2.c: 534: } |
4511 |
4512 ;I2C2.c: 533: break; |
4513 |
4514 ;I2C2.c: 528: case 0x0A: |
4515 |
4516 ;I2C2.c: 527: switch (c) { |
4517 0B9E 0870 movf I2C2_Process_Receive@c,w |
4518 |
4519 ; Switch size 1, requested type "space" |
4520 ; Number of cases is 1, Range of values is 10 to 10 |
4521 ; switch strategies available: |
4522 ; Name Instructions Cycles |
4523 ; simple_byte 4 3 (average) |
4524 ; direct_byte 11 9 (fixed) |
4525 ; jumptable 263 9 (fixed) |
4526 ; Chosen strategy is simple_byte |
4527 0B9F 3A0A xorlw 10 ; case 10 |
4528 0BA0 1903 skipnz |
4529 0BA1 2BA3 goto i1l2865 |
4530 0BA2 2BA3 goto i1l2865 |
4531 0BA3 i1l2865: |
4532 |
4533 ;I2C2.c: 535: return ret; |
4534 0BA3 0871 movf I2C2_Process_Receive@ret,w |
4535 0BA4 0008 return |
4536 0BA5 __end_of_I2C2_Process_Receive: |
4537 |
4538 psect text21 |
4539 001B __ptext21: |
4540 ;; *************** function _I2C2_Interrupt_Master ***************** |
4541 ;; Defined at: |
4542 ;; line 148 in file "I2C2.c" |
4543 ;; Parameters: Size Location Type |
4544 ;; None |
4545 ;; Auto vars: Size Location Type |
4546 ;; tmp 1 3[COMMON] unsigned char |
4547 ;; tmp 1 2[COMMON] unsigned char |
4548 ;; Return value: Size Location Type |
4549 ;; None void |
4550 ;; Registers used: |
4551 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0 |
4552 ;; Tracked objects: |
4553 ;; On entry : 0/0 |
4554 ;; On exit : 0/0 |
4555 ;; Unchanged: 0/0 |
4556 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
4557 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
4558 ;; Locals: 2 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
4559 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
4560 ;; Totals: 4 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
4561 ;;Total ram usage: 4 bytes |
4562 ;; Hardware stack levels used: 1 |
4563 ;; This function calls: |
4564 ;; Nothing |
4565 ;; This function is called by: |
4566 ;; _I2C2_Interrupt_Handler |
4567 ;; This function uses a non-reentrant model |
4568 ;; |
4569 |
4570 |
4571 ;psect for function _I2C2_Interrupt_Master |
4572 001B _I2C2_Interrupt_Master: |
4573 |
4574 ;I2C2.c: 150: if (i2c_data_p->master_status == 0x20) { |
4575 |
4576 ;incstack = 0 |
4577 ; Regs used in _I2C2_Interrupt_Master: [wreg-fsr1h+status,2+status,0] |
4578 001B 0020 movlb 0 ; select bank0 |
4579 001C 0869 movf I2C2@i2c_data_p,w |
4580 001D 3E4A addlw 74 |
4581 001E 0086 movwf 6 |
4582 001F 3001 movlw 1 ; select bank2/3 |
4583 0020 0087 movwf 7 |
4584 0021 0801 movf 1,w |
4585 0022 3A20 xorlw 32 |
4586 0023 1903 btfsc 3,2 |
4587 0024 289F goto i1l2743 |
4588 0025 28B0 goto i1l2745 |
4589 0026 i1l2725: |
4590 ;I2C2.c: 154: case 0x5: |
4591 |
4592 ;I2C2.c: 153: break; |
4593 |
4594 ;I2C2.c: 152: case 0x1: |
4595 |
4596 ;I2C2.c: 151: switch (i2c_data_p->operating_state) { |
4597 |
4598 |
4599 ;I2C2.c: 156: i2c_data_p->operating_state = 0x7; |
4600 0026 3007 movlw 7 |
4601 0027 00F0 movwf ??_I2C2_Interrupt_Master |
4602 0028 0869 movf I2C2@i2c_data_p,w |
4603 0029 3E47 addlw 71 |
4604 002A 0086 movwf 6 |
4605 002B 3001 movlw 1 ; select bank2/3 |
4606 002C 0087 movwf 7 |
4607 002D 0870 movf ??_I2C2_Interrupt_Master,w |
4608 002E 0081 movwf 1 |
4609 |
4610 ;I2C2.c: 157: SSP2BUF = (i2c_data_p->master_dest_addr << 1) | 0x0; |
4611 002F 0869 movf I2C2@i2c_data_p,w |
4612 0030 3E49 addlw 73 |
4613 0031 0086 movwf 6 |
4614 0032 3001 movlw 1 ; select bank2/3 |
4615 0033 0087 movwf 7 |
4616 0034 3501 lslf 1,w |
4617 0035 0024 movlb 4 ; select bank4 |
4618 0036 0099 movwf 25 ;volatile |
4619 |
4620 ;I2C2.c: 158: break; |
4621 0037 0008 return |
4622 0038 i1l341: |
4623 ;I2C2.c: 159: case 0x7: |
4624 |
4625 |
4626 ;I2C2.c: 161: if (!SSP2CON2bits.ACKSTAT) { |
4627 0038 0024 movlb 4 ; select bank4 |
4628 0039 1B1E btfsc 30,6 ;volatile |
4629 003A 2881 goto i1l2737 |
4630 |
4631 ;I2C2.c: 163: if (i2c_data_p->buffer_in_read_ind < i2c_data_p->buffer_in_len) { |
4632 003B 0020 movlb 0 ; select bank0 |
4633 003C 0869 movf I2C2@i2c_data_p,w |
4634 003D 3E22 addlw 34 |
4635 003E 0086 movwf 6 |
4636 003F 3001 movlw 1 ; select bank2/3 |
4637 0040 0087 movwf 7 |
4638 0041 0869 movf I2C2@i2c_data_p,w |
4639 0042 3E20 addlw 32 |
4640 0043 0084 movwf 4 |
4641 0044 3001 movlw 1 ; select bank2/3 |
4642 0045 0085 movwf 5 |
4643 0046 0800 movf 0,w |
4644 0047 0201 subwf 1,w |
4645 0048 1803 skipnc |
4646 0049 2864 goto i1l2733 |
4647 |
4648 ;I2C2.c: 164: SSP2BUF = i2c_data_p->buffer_in[i2c_data_p->buffer_in_read_ind]; |
4649 004A 0869 movf I2C2@i2c_data_p,w |
4650 004B 3E22 addlw 34 |
4651 004C 0086 movwf 6 |
4652 004D 3001 movlw 1 ; select bank2/3 |
4653 004E 0087 movwf 7 |
4654 004F 0801 movf 1,w |
4655 0050 0769 addwf I2C2@i2c_data_p,w |
4656 0051 00F0 movwf ??_I2C2_Interrupt_Master |
4657 0052 0870 movf ??_I2C2_Interrupt_Master,w |
4658 0053 0086 movwf 6 |
4659 0054 3001 movlw 1 ; select bank2/3 |
4660 0055 0087 movwf 7 |
4661 0056 0801 movf 1,w |
4662 0057 0024 movlb 4 ; select bank4 |
4663 0058 0099 movwf 25 ;volatile |
4664 |
4665 ;I2C2.c: 165: i2c_data_p->buffer_in_read_ind++; |
4666 0059 3001 movlw 1 |
4667 005A 00F0 movwf ??_I2C2_Interrupt_Master |
4668 005B 0020 movlb 0 ; select bank0 |
4669 005C 0869 movf I2C2@i2c_data_p,w |
4670 005D 3E22 addlw 34 |
4671 005E 0086 movwf 6 |
4672 005F 3001 movlw 1 ; select bank2/3 |
4673 0060 0087 movwf 7 |
4674 0061 0870 movf ??_I2C2_Interrupt_Master,w |
4675 0062 0781 addwf 1,f |
4676 |
4677 ;I2C2.c: 166: } else { |
4678 0063 0008 return |
4679 0064 i1l2733: |
4680 |
4681 ;I2C2.c: 168: i2c_data_p->operating_state = 0x1; |
4682 0064 0869 movf I2C2@i2c_data_p,w |
4683 0065 3E47 addlw 71 |
4684 0066 0086 movwf 6 |
4685 0067 3001 movlw 1 ; select bank2/3 |
4686 0068 0087 movwf 7 |
4687 0069 0181 clrf 1 |
4688 006A 0A81 incf 1,f |
4689 |
4690 ;I2C2.c: 169: SSP2CON2bits.PEN = 1; |
4691 006B 0024 movlb 4 ; select bank4 |
4692 006C 151E bsf 30,2 ;volatile |
4693 |
4694 ;I2C2.c: 170: i2c_data_p->master_status = 0x23; |
4695 006D 3023 movlw 35 |
4696 006E 00F0 movwf ??_I2C2_Interrupt_Master |
4697 006F 0020 movlb 0 ; select bank0 |
4698 0070 0869 movf I2C2@i2c_data_p,w |
4699 0071 3E4A addlw 74 |
4700 0072 0086 movwf 6 |
4701 0073 3001 movlw 1 ; select bank2/3 |
4702 0074 0087 movwf 7 |
4703 0075 0870 movf ??_I2C2_Interrupt_Master,w |
4704 0076 0081 movwf 1 |
4705 |
4706 ;I2C2.c: 171: i2c_data_p->return_status = 0x30; |
4707 0077 3030 movlw 48 |
4708 0078 00F0 movwf ??_I2C2_Interrupt_Master |
4709 0079 0869 movf I2C2@i2c_data_p,w |
4710 007A 3E48 addlw 72 |
4711 007B 0086 movwf 6 |
4712 007C 3001 movlw 1 ; select bank2/3 |
4713 007D 0087 movwf 7 |
4714 007E 0870 movf ??_I2C2_Interrupt_Master,w |
4715 007F 0081 movwf 1 |
4716 |
4717 ;I2C2.c: 172: } |
4718 ;I2C2.c: 173: } else { |
4719 0080 0008 return |
4720 0081 i1l2737: |
4721 |
4722 ;I2C2.c: 175: i2c_data_p->operating_state = 0x1; |
4723 0081 0020 movlb 0 ; select bank0 |
4724 0082 0869 movf I2C2@i2c_data_p,w |
4725 0083 3E47 addlw 71 |
4726 0084 0086 movwf 6 |
4727 0085 3001 movlw 1 ; select bank2/3 |
4728 0086 0087 movwf 7 |
4729 0087 0181 clrf 1 |
4730 0088 0A81 incf 1,f |
4731 |
4732 ;I2C2.c: 176: SSP2CON2bits.PEN = 1; |
4733 0089 0024 movlb 4 ; select bank4 |
4734 008A 151E bsf 30,2 ;volatile |
4735 |
4736 ;I2C2.c: 177: i2c_data_p->master_status = 0x23; |
4737 008B 3023 movlw 35 |
4738 008C 00F0 movwf ??_I2C2_Interrupt_Master |
4739 008D 0020 movlb 0 ; select bank0 |
4740 008E 0869 movf I2C2@i2c_data_p,w |
4741 008F 3E4A addlw 74 |
4742 0090 0086 movwf 6 |
4743 0091 3001 movlw 1 ; select bank2/3 |
4744 0092 0087 movwf 7 |
4745 0093 0870 movf ??_I2C2_Interrupt_Master,w |
4746 0094 0081 movwf 1 |
4747 |
4748 ;I2C2.c: 178: i2c_data_p->return_status = 0x31; |
4749 0095 3031 movlw 49 |
4750 0096 00F0 movwf ??_I2C2_Interrupt_Master |
4751 0097 0869 movf I2C2@i2c_data_p,w |
4752 0098 3E48 addlw 72 |
4753 0099 0086 movwf 6 |
4754 009A 3001 movlw 1 ; select bank2/3 |
4755 009B 0087 movwf 7 |
4756 009C 0870 movf ??_I2C2_Interrupt_Master,w |
4757 009D 0081 movwf 1 |
4758 |
4759 ;I2C2.c: 181: } |
4760 |
4761 ;I2C2.c: 179: } |
4762 ;I2C2.c: 180: break; |
4763 009E 0008 return |
4764 009F i1l2743: |
4765 009F 0869 movf I2C2@i2c_data_p,w |
4766 00A0 3E47 addlw 71 |
4767 00A1 0086 movwf 6 |
4768 00A2 3001 movlw 1 ; select bank2/3 |
4769 00A3 0087 movwf 7 |
4770 00A4 0801 movf 1,w |
4771 |
4772 ; Switch size 1, requested type "space" |
4773 ; Number of cases is 3, Range of values is 1 to 7 |
4774 ; switch strategies available: |
4775 ; Name Instructions Cycles |
4776 ; simple_byte 10 6 (average) |
4777 ; direct_byte 23 9 (fixed) |
4778 ; jumptable 263 9 (fixed) |
4779 ; Chosen strategy is simple_byte |
4780 00A5 3A01 xorlw 1 ; case 1 |
4781 00A6 1903 skipnz |
4782 00A7 2ADC goto i1l381 |
4783 00A8 3A04 xorlw 4 ; case 5 |
4784 00A9 1903 skipnz |
4785 00AA 2826 goto i1l2725 |
4786 00AB 3A02 xorlw 2 ; case 7 |
4787 00AC 1903 skipnz |
4788 00AD 2838 goto i1l341 |
4789 00AE 2ADC goto i1l381 |
4790 |
4791 ;I2C2.c: 183: } else if (i2c_data_p->master_status == 0x21) { |
4792 00AF 0008 return |
4793 00B0 i1l2745: |
4794 00B0 0869 movf I2C2@i2c_data_p,w |
4795 00B1 3E4A addlw 74 |
4796 00B2 0086 movwf 6 |
4797 00B3 3001 movlw 1 ; select bank2/3 |
4798 00B4 0087 movwf 7 |
4799 00B5 0801 movf 1,w |
4800 00B6 3A21 xorlw 33 |
4801 00B7 1903 btfsc 3,2 |
4802 00B8 296E goto i1l2791 |
4803 00B9 2988 goto i1l2793 |
4804 00BA i1l2749: |
4805 ;I2C2.c: 187: case 0x5: |
4806 |
4807 ;I2C2.c: 186: break; |
4808 |
4809 ;I2C2.c: 185: case 0x1: |
4810 |
4811 ;I2C2.c: 184: switch (i2c_data_p->operating_state) { |
4812 |
4813 |
4814 ;I2C2.c: 189: i2c_data_p->operating_state = 0x8; |
4815 00BA 3008 movlw 8 |
4816 00BB 00F0 movwf ??_I2C2_Interrupt_Master |
4817 00BC 0869 movf I2C2@i2c_data_p,w |
4818 00BD 3E47 addlw 71 |
4819 00BE 0086 movwf 6 |
4820 00BF 3001 movlw 1 ; select bank2/3 |
4821 00C0 0087 movwf 7 |
4822 00C1 0870 movf ??_I2C2_Interrupt_Master,w |
4823 00C2 0081 movwf 1 |
4824 |
4825 ;I2C2.c: 190: uint8_t tmp = (i2c_data_p->master_dest_addr << 1); |
4826 00C3 0869 movf I2C2@i2c_data_p,w |
4827 00C4 3E49 addlw 73 |
4828 00C5 0086 movwf 6 |
4829 00C6 3001 movlw 1 ; select bank2/3 |
4830 00C7 0087 movwf 7 |
4831 00C8 3501 lslf 1,w |
4832 00C9 00F0 movwf ??_I2C2_Interrupt_Master |
4833 00CA 0870 movf ??_I2C2_Interrupt_Master,w |
4834 00CB 00F2 movwf I2C2_Interrupt_Master@tmp |
4835 |
4836 ;I2C2.c: 191: tmp |= 0x01; |
4837 00CC 1472 bsf I2C2_Interrupt_Master@tmp,0 |
4838 |
4839 ;I2C2.c: 192: SSP2BUF = tmp; |
4840 00CD 0872 movf I2C2_Interrupt_Master@tmp,w |
4841 00CE 0024 movlb 4 ; select bank4 |
4842 00CF 0099 movwf 25 ;volatile |
4843 |
4844 ;I2C2.c: 193: break; |
4845 00D0 0008 return |
4846 00D1 i1l352: |
4847 ;I2C2.c: 194: case 0x8: |
4848 |
4849 |
4850 ;I2C2.c: 196: if (!SSP2CON2bits.ACKSTAT) { |
4851 00D1 0024 movlb 4 ; select bank4 |
4852 00D2 1B1E btfsc 30,6 ;volatile |
4853 00D3 28E1 goto i1l2761 |
4854 |
4855 ;I2C2.c: 198: i2c_data_p->operating_state = 0x3; |
4856 00D4 3003 movlw 3 |
4857 00D5 00F0 movwf ??_I2C2_Interrupt_Master |
4858 00D6 0020 movlb 0 ; select bank0 |
4859 00D7 0869 movf I2C2@i2c_data_p,w |
4860 00D8 3E47 addlw 71 |
4861 00D9 0086 movwf 6 |
4862 00DA 3001 movlw 1 ; select bank2/3 |
4863 00DB 0087 movwf 7 |
4864 00DC 0870 movf ??_I2C2_Interrupt_Master,w |
4865 00DD 0081 movwf 1 |
4866 |
4867 ;I2C2.c: 199: SSP2CON2bits.RCEN = 1; |
4868 00DE 0024 movlb 4 ; select bank4 |
4869 00DF 159E bsf 30,3 ;volatile |
4870 |
4871 ;I2C2.c: 200: } else { |
4872 00E0 0008 return |
4873 00E1 i1l2761: |
4874 |
4875 ;I2C2.c: 202: i2c_data_p->operating_state = 0x1; |
4876 00E1 0020 movlb 0 ; select bank0 |
4877 00E2 0869 movf I2C2@i2c_data_p,w |
4878 00E3 3E47 addlw 71 |
4879 00E4 0086 movwf 6 |
4880 00E5 3001 movlw 1 ; select bank2/3 |
4881 00E6 0087 movwf 7 |
4882 00E7 0181 clrf 1 |
4883 00E8 0A81 incf 1,f |
4884 |
4885 ;I2C2.c: 203: SSP2CON2bits.PEN = 1; |
4886 00E9 0024 movlb 4 ; select bank4 |
4887 00EA 151E bsf 30,2 ;volatile |
4888 |
4889 ;I2C2.c: 204: i2c_data_p->master_status = 0x23; |
4890 00EB 3023 movlw 35 |
4891 00EC 00F0 movwf ??_I2C2_Interrupt_Master |
4892 00ED 0020 movlb 0 ; select bank0 |
4893 00EE 0869 movf I2C2@i2c_data_p,w |
4894 00EF 3E4A addlw 74 |
4895 00F0 0086 movwf 6 |
4896 00F1 3001 movlw 1 ; select bank2/3 |
4897 00F2 0087 movwf 7 |
4898 00F3 0870 movf ??_I2C2_Interrupt_Master,w |
4899 00F4 0081 movwf 1 |
4900 |
4901 ;I2C2.c: 205: i2c_data_p->return_status = 0x33; |
4902 00F5 3033 movlw 51 |
4903 00F6 00F0 movwf ??_I2C2_Interrupt_Master |
4904 00F7 0869 movf I2C2@i2c_data_p,w |
4905 00F8 3E48 addlw 72 |
4906 00F9 0086 movwf 6 |
4907 00FA 3001 movlw 1 ; select bank2/3 |
4908 00FB 0087 movwf 7 |
4909 00FC 0870 movf ??_I2C2_Interrupt_Master,w |
4910 00FD 0081 movwf 1 |
4911 |
4912 ;I2C2.c: 206: } |
4913 ;I2C2.c: 207: break; |
4914 00FE 0008 return |
4915 00FF i1l2765: |
4916 ;I2C2.c: 208: case 0x3: |
4917 |
4918 |
4919 ;I2C2.c: 211: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = SSP2BUF; |
4920 00FF 0024 movlb 4 ; select bank4 |
4921 0100 0819 movf 25,w ;volatile |
4922 0101 00F0 movwf ??_I2C2_Interrupt_Master |
4923 0102 0020 movlb 0 ; select bank0 |
4924 0103 0869 movf I2C2@i2c_data_p,w |
4925 0104 3E23 addlw 35 |
4926 0105 0086 movwf 6 |
4927 0106 3001 movlw 1 ; select bank2/3 |
4928 0107 0087 movwf 7 |
4929 0108 0801 movf 1,w |
4930 0109 0769 addwf I2C2@i2c_data_p,w |
4931 010A 00F1 movwf ??_I2C2_Interrupt_Master+1 |
4932 010B 0871 movf ??_I2C2_Interrupt_Master+1,w |
4933 010C 0086 movwf 6 |
4934 010D 3001 movlw 1 ; select bank2/3 |
4935 010E 0087 movwf 7 |
4936 010F 0870 movf ??_I2C2_Interrupt_Master,w |
4937 0110 0081 movwf 1 |
4938 |
4939 ;I2C2.c: 212: i2c_data_p->buffer_in_write_ind++; |
4940 0111 3001 movlw 1 |
4941 0112 00F0 movwf ??_I2C2_Interrupt_Master |
4942 0113 0869 movf I2C2@i2c_data_p,w |
4943 0114 3E23 addlw 35 |
4944 0115 0086 movwf 6 |
4945 0116 3001 movlw 1 ; select bank2/3 |
4946 0117 0087 movwf 7 |
4947 0118 0870 movf ??_I2C2_Interrupt_Master,w |
4948 0119 0781 addwf 1,f |
4949 |
4950 ;I2C2.c: 213: if (i2c_data_p->buffer_in_write_ind < i2c_data_p->buffer_in_len) { |
4951 011A 0869 movf I2C2@i2c_data_p,w |
4952 011B 3E23 addlw 35 |
4953 011C 0086 movwf 6 |
4954 011D 3001 movlw 1 ; select bank2/3 |
4955 011E 0087 movwf 7 |
4956 011F 0869 movf I2C2@i2c_data_p,w |
4957 0120 3E20 addlw 32 |
4958 0121 0084 movwf 4 |
4959 0122 3001 movlw 1 ; select bank2/3 |
4960 0123 0085 movwf 5 |
4961 0124 0800 movf 0,w |
4962 0125 0201 subwf 1,w |
4963 0126 1803 skipnc |
4964 0127 2935 goto i1l2775 |
4965 |
4966 ;I2C2.c: 215: i2c_data_p->operating_state = 0xA; |
4967 0128 300A movlw 10 |
4968 0129 00F0 movwf ??_I2C2_Interrupt_Master |
4969 012A 0869 movf I2C2@i2c_data_p,w |
4970 012B 3E47 addlw 71 |
4971 012C 0086 movwf 6 |
4972 012D 3001 movlw 1 ; select bank2/3 |
4973 012E 0087 movwf 7 |
4974 012F 0870 movf ??_I2C2_Interrupt_Master,w |
4975 0130 0081 movwf 1 |
4976 |
4977 ;I2C2.c: 216: SSP2CON2bits.ACKDT = 0; |
4978 0131 0024 movlb 4 ; select bank4 |
4979 0132 129E bcf 30,5 ;volatile |
4980 |
4981 ;I2C2.c: 217: SSP2CON2bits.ACKEN = 1; |
4982 0133 161E bsf 30,4 ;volatile |
4983 |
4984 ;I2C2.c: 218: } else { |
4985 0134 0008 return |
4986 0135 i1l2775: |
4987 |
4988 ;I2C2.c: 220: i2c_data_p->operating_state = 0xB; |
4989 0135 300B movlw 11 |
4990 0136 00F0 movwf ??_I2C2_Interrupt_Master |
4991 0137 0020 movlb 0 ; select bank0 |
4992 0138 0869 movf I2C2@i2c_data_p,w |
4993 0139 3E47 addlw 71 |
4994 013A 0086 movwf 6 |
4995 013B 3001 movlw 1 ; select bank2/3 |
4996 013C 0087 movwf 7 |
4997 013D 0870 movf ??_I2C2_Interrupt_Master,w |
4998 013E 0081 movwf 1 |
4999 |
5000 ;I2C2.c: 221: SSP2CON2bits.ACKDT = 1; |
5001 013F 0024 movlb 4 ; select bank4 |
5002 0140 169E bsf 30,5 ;volatile |
5003 |
5004 ;I2C2.c: 222: SSP2CON2bits.ACKEN = 1; |
5005 0141 161E bsf 30,4 ;volatile |
5006 |
5007 ;I2C2.c: 223: } |
5008 ;I2C2.c: 224: break; |
5009 0142 0008 return |
5010 0143 i1l2781: |
5011 ;I2C2.c: 225: case 0xA: |
5012 |
5013 |
5014 ;I2C2.c: 227: i2c_data_p->operating_state = 0x3; |
5015 0143 3003 movlw 3 |
5016 0144 00F0 movwf ??_I2C2_Interrupt_Master |
5017 0145 0020 movlb 0 ; select bank0 |
5018 0146 0869 movf I2C2@i2c_data_p,w |
5019 0147 3E47 addlw 71 |
5020 0148 0086 movwf 6 |
5021 0149 3001 movlw 1 ; select bank2/3 |
5022 014A 0087 movwf 7 |
5023 014B 0870 movf ??_I2C2_Interrupt_Master,w |
5024 014C 0081 movwf 1 |
5025 |
5026 ;I2C2.c: 228: SSP2CON2bits.RCEN = 1; |
5027 014D 0024 movlb 4 ; select bank4 |
5028 014E 159E bsf 30,3 ;volatile |
5029 |
5030 ;I2C2.c: 229: break; |
5031 014F 0008 return |
5032 0150 i1l2785: |
5033 ;I2C2.c: 230: case 0xB: |
5034 |
5035 |
5036 ;I2C2.c: 232: i2c_data_p->operating_state = 0x1; |
5037 0150 0020 movlb 0 ; select bank0 |
5038 0151 0869 movf I2C2@i2c_data_p,w |
5039 0152 3E47 addlw 71 |
5040 0153 0086 movwf 6 |
5041 0154 3001 movlw 1 ; select bank2/3 |
5042 0155 0087 movwf 7 |
5043 0156 0181 clrf 1 |
5044 0157 0A81 incf 1,f |
5045 |
5046 ;I2C2.c: 233: SSP2CON2bits.PEN = 1; |
5047 0158 0024 movlb 4 ; select bank4 |
5048 0159 151E bsf 30,2 ;volatile |
5049 |
5050 ;I2C2.c: 234: i2c_data_p->master_status = 0x23; |
5051 015A 3023 movlw 35 |
5052 015B 00F0 movwf ??_I2C2_Interrupt_Master |
5053 015C 0020 movlb 0 ; select bank0 |
5054 015D 0869 movf I2C2@i2c_data_p,w |
5055 015E 3E4A addlw 74 |
5056 015F 0086 movwf 6 |
5057 0160 3001 movlw 1 ; select bank2/3 |
5058 0161 0087 movwf 7 |
5059 0162 0870 movf ??_I2C2_Interrupt_Master,w |
5060 0163 0081 movwf 1 |
5061 |
5062 ;I2C2.c: 235: i2c_data_p->return_status = 0x32; |
5063 0164 3032 movlw 50 |
5064 0165 00F0 movwf ??_I2C2_Interrupt_Master |
5065 0166 0869 movf I2C2@i2c_data_p,w |
5066 0167 3E48 addlw 72 |
5067 0168 0086 movwf 6 |
5068 0169 3001 movlw 1 ; select bank2/3 |
5069 016A 0087 movwf 7 |
5070 016B 0870 movf ??_I2C2_Interrupt_Master,w |
5071 016C 0081 movwf 1 |
5072 |
5073 ;I2C2.c: 237: } |
5074 |
5075 ;I2C2.c: 236: break; |
5076 016D 0008 return |
5077 016E i1l2791: |
5078 016E 0869 movf I2C2@i2c_data_p,w |
5079 016F 3E47 addlw 71 |
5080 0170 0086 movwf 6 |
5081 0171 3001 movlw 1 ; select bank2/3 |
5082 0172 0087 movwf 7 |
5083 0173 0801 movf 1,w |
5084 |
5085 ; Switch size 1, requested type "space" |
5086 ; Number of cases is 6, Range of values is 1 to 11 |
5087 ; switch strategies available: |
5088 ; Name Instructions Cycles |
5089 ; simple_byte 19 10 (average) |
5090 ; direct_byte 31 9 (fixed) |
5091 ; jumptable 263 9 (fixed) |
5092 ; Chosen strategy is simple_byte |
5093 0174 3A01 xorlw 1 ; case 1 |
5094 0175 1903 skipnz |
5095 0176 2ADC goto i1l381 |
5096 0177 3A02 xorlw 2 ; case 3 |
5097 0178 1903 skipnz |
5098 0179 28FF goto i1l2765 |
5099 017A 3A06 xorlw 6 ; case 5 |
5100 017B 1903 skipnz |
5101 017C 28BA goto i1l2749 |
5102 017D 3A0D xorlw 13 ; case 8 |
5103 017E 1903 skipnz |
5104 017F 28D1 goto i1l352 |
5105 0180 3A02 xorlw 2 ; case 10 |
5106 0181 1903 skipnz |
5107 0182 2943 goto i1l2781 |
5108 0183 3A01 xorlw 1 ; case 11 |
5109 0184 1903 skipnz |
5110 0185 2950 goto i1l2785 |
5111 0186 2ADC goto i1l381 |
5112 |
5113 ;I2C2.c: 238: } else if (i2c_data_p->master_status == 0x22) { |
5114 0187 0008 return |
5115 0188 i1l2793: |
5116 0188 0869 movf I2C2@i2c_data_p,w |
5117 0189 3E4A addlw 74 |
5118 018A 0086 movwf 6 |
5119 018B 3001 movlw 1 ; select bank2/3 |
5120 018C 0087 movwf 7 |
5121 018D 0801 movf 1,w |
5122 018E 3A22 xorlw 34 |
5123 018F 1D03 skipz |
5124 0190 0008 return |
5125 0191 2AB9 goto i1l2857 |
5126 0192 i1l2797: |
5127 ;I2C2.c: 242: case 0x5: |
5128 |
5129 ;I2C2.c: 241: break; |
5130 |
5131 ;I2C2.c: 240: case 0x1: |
5132 |
5133 ;I2C2.c: 239: switch (i2c_data_p->operating_state) { |
5134 |
5135 |
5136 ;I2C2.c: 244: i2c_data_p->operating_state = 0x7; |
5137 0192 3007 movlw 7 |
5138 0193 00F0 movwf ??_I2C2_Interrupt_Master |
5139 0194 0869 movf I2C2@i2c_data_p,w |
5140 0195 3E47 addlw 71 |
5141 0196 0086 movwf 6 |
5142 0197 3001 movlw 1 ; select bank2/3 |
5143 0198 0087 movwf 7 |
5144 0199 0870 movf ??_I2C2_Interrupt_Master,w |
5145 019A 0081 movwf 1 |
5146 |
5147 ;I2C2.c: 245: SSP2BUF = (i2c_data_p->master_dest_addr << 1) | 0x0; |
5148 019B 0869 movf I2C2@i2c_data_p,w |
5149 019C 3E49 addlw 73 |
5150 019D 0086 movwf 6 |
5151 019E 3001 movlw 1 ; select bank2/3 |
5152 019F 0087 movwf 7 |
5153 01A0 3501 lslf 1,w |
5154 01A1 0024 movlb 4 ; select bank4 |
5155 01A2 0099 movwf 25 ;volatile |
5156 |
5157 ;I2C2.c: 246: break; |
5158 01A3 0008 return |
5159 01A4 i1l366: |
5160 ;I2C2.c: 247: case 0x7: |
5161 |
5162 |
5163 ;I2C2.c: 249: if (!SSP2CON2bits.ACKSTAT) { |
5164 01A4 0024 movlb 4 ; select bank4 |
5165 01A5 1B1E btfsc 30,6 ;volatile |
5166 01A6 29BA goto i1l2803 |
5167 |
5168 ;I2C2.c: 251: SSP2BUF = i2c_data_p->buffer_in[0]; |
5169 01A7 0020 movlb 0 ; select bank0 |
5170 01A8 0869 movf I2C2@i2c_data_p,w |
5171 01A9 0086 movwf 6 |
5172 01AA 3001 movlw 1 ; select bank2/3 |
5173 01AB 0087 movwf 7 |
5174 01AC 0801 movf 1,w |
5175 01AD 0024 movlb 4 ; select bank4 |
5176 01AE 0099 movwf 25 ;volatile |
5177 |
5178 ;I2C2.c: 252: i2c_data_p->operating_state = 0x9; |
5179 01AF 3009 movlw 9 |
5180 01B0 00F0 movwf ??_I2C2_Interrupt_Master |
5181 01B1 0020 movlb 0 ; select bank0 |
5182 01B2 0869 movf I2C2@i2c_data_p,w |
5183 01B3 3E47 addlw 71 |
5184 01B4 0086 movwf 6 |
5185 01B5 3001 movlw 1 ; select bank2/3 |
5186 01B6 0087 movwf 7 |
5187 01B7 0870 movf ??_I2C2_Interrupt_Master,w |
5188 01B8 0081 movwf 1 |
5189 |
5190 ;I2C2.c: 253: } else { |
5191 01B9 0008 return |
5192 01BA i1l2803: |
5193 |
5194 ;I2C2.c: 255: i2c_data_p->operating_state = 0x1; |
5195 01BA 0020 movlb 0 ; select bank0 |
5196 01BB 0869 movf I2C2@i2c_data_p,w |
5197 01BC 3E47 addlw 71 |
5198 01BD 0086 movwf 6 |
5199 01BE 3001 movlw 1 ; select bank2/3 |
5200 01BF 0087 movwf 7 |
5201 01C0 0181 clrf 1 |
5202 01C1 0A81 incf 1,f |
5203 |
5204 ;I2C2.c: 256: SSP2CON2bits.PEN = 1; |
5205 01C2 0024 movlb 4 ; select bank4 |
5206 01C3 151E bsf 30,2 ;volatile |
5207 |
5208 ;I2C2.c: 257: i2c_data_p->master_status = 0x23; |
5209 01C4 3023 movlw 35 |
5210 01C5 00F0 movwf ??_I2C2_Interrupt_Master |
5211 01C6 0020 movlb 0 ; select bank0 |
5212 01C7 0869 movf I2C2@i2c_data_p,w |
5213 01C8 3E4A addlw 74 |
5214 01C9 0086 movwf 6 |
5215 01CA 3001 movlw 1 ; select bank2/3 |
5216 01CB 0087 movwf 7 |
5217 01CC 0870 movf ??_I2C2_Interrupt_Master,w |
5218 01CD 0081 movwf 1 |
5219 |
5220 ;I2C2.c: 258: i2c_data_p->return_status = 0x31; |
5221 01CE 3031 movlw 49 |
5222 01CF 00F0 movwf ??_I2C2_Interrupt_Master |
5223 01D0 0869 movf I2C2@i2c_data_p,w |
5224 01D1 3E48 addlw 72 |
5225 01D2 0086 movwf 6 |
5226 01D3 3001 movlw 1 ; select bank2/3 |
5227 01D4 0087 movwf 7 |
5228 01D5 0870 movf ??_I2C2_Interrupt_Master,w |
5229 01D6 0081 movwf 1 |
5230 |
5231 ;I2C2.c: 259: } |
5232 ;I2C2.c: 260: break; |
5233 01D7 0008 return |
5234 01D8 i1l369: |
5235 ;I2C2.c: 261: case 0x9: |
5236 |
5237 |
5238 ;I2C2.c: 262: if (!SSP2CON2bits.ACKSTAT) { |
5239 01D8 0024 movlb 4 ; select bank4 |
5240 01D9 1B1E btfsc 30,6 ;volatile |
5241 01DA 29E7 goto i1l2811 |
5242 |
5243 ;I2C2.c: 263: SSP2CON2bits.RSEN = 1; |
5244 01DB 149E bsf 30,1 ;volatile |
5245 |
5246 ;I2C2.c: 264: i2c_data_p->operating_state = 0x6; |
5247 01DC 3006 movlw 6 |
5248 01DD 00F0 movwf ??_I2C2_Interrupt_Master |
5249 01DE 0020 movlb 0 ; select bank0 |
5250 01DF 0869 movf I2C2@i2c_data_p,w |
5251 01E0 3E47 addlw 71 |
5252 01E1 0086 movwf 6 |
5253 01E2 3001 movlw 1 ; select bank2/3 |
5254 01E3 0087 movwf 7 |
5255 01E4 0870 movf ??_I2C2_Interrupt_Master,w |
5256 01E5 0081 movwf 1 |
5257 |
5258 ;I2C2.c: 265: } else { |
5259 01E6 0008 return |
5260 01E7 i1l2811: |
5261 |
5262 ;I2C2.c: 267: i2c_data_p->operating_state = 0x1; |
5263 01E7 0020 movlb 0 ; select bank0 |
5264 01E8 0869 movf I2C2@i2c_data_p,w |
5265 01E9 3E47 addlw 71 |
5266 01EA 0086 movwf 6 |
5267 01EB 3001 movlw 1 ; select bank2/3 |
5268 01EC 0087 movwf 7 |
5269 01ED 0181 clrf 1 |
5270 01EE 0A81 incf 1,f |
5271 |
5272 ;I2C2.c: 268: SSP2CON2bits.PEN = 1; |
5273 01EF 0024 movlb 4 ; select bank4 |
5274 01F0 151E bsf 30,2 ;volatile |
5275 |
5276 ;I2C2.c: 269: i2c_data_p->master_status = 0x23; |
5277 01F1 3023 movlw 35 |
5278 01F2 00F0 movwf ??_I2C2_Interrupt_Master |
5279 01F3 0020 movlb 0 ; select bank0 |
5280 01F4 0869 movf I2C2@i2c_data_p,w |
5281 01F5 3E4A addlw 74 |
5282 01F6 0086 movwf 6 |
5283 01F7 3001 movlw 1 ; select bank2/3 |
5284 01F8 0087 movwf 7 |
5285 01F9 0870 movf ??_I2C2_Interrupt_Master,w |
5286 01FA 0081 movwf 1 |
5287 |
5288 ;I2C2.c: 270: i2c_data_p->return_status = 0x31; |
5289 01FB 3031 movlw 49 |
5290 01FC 00F0 movwf ??_I2C2_Interrupt_Master |
5291 01FD 0869 movf I2C2@i2c_data_p,w |
5292 01FE 3E48 addlw 72 |
5293 01FF 0086 movwf 6 |
5294 0200 3001 movlw 1 ; select bank2/3 |
5295 0201 0087 movwf 7 |
5296 0202 0870 movf ??_I2C2_Interrupt_Master,w |
5297 0203 0081 movwf 1 |
5298 |
5299 ;I2C2.c: 271: } |
5300 ;I2C2.c: 272: break; |
5301 0204 0008 return |
5302 0205 i1l2815: |
5303 ;I2C2.c: 273: case 0x6: |
5304 |
5305 |
5306 ;I2C2.c: 275: i2c_data_p->operating_state = 0x8; |
5307 0205 3008 movlw 8 |
5308 0206 00F0 movwf ??_I2C2_Interrupt_Master |
5309 0207 0869 movf I2C2@i2c_data_p,w |
5310 0208 3E47 addlw 71 |
5311 0209 0086 movwf 6 |
5312 020A 3001 movlw 1 ; select bank2/3 |
5313 020B 0087 movwf 7 |
5314 020C 0870 movf ??_I2C2_Interrupt_Master,w |
5315 020D 0081 movwf 1 |
5316 |
5317 ;I2C2.c: 276: uint8_t tmp = (i2c_data_p->master_dest_addr << 1); |
5318 020E 0869 movf I2C2@i2c_data_p,w |
5319 020F 3E49 addlw 73 |
5320 0210 0086 movwf 6 |
5321 0211 3001 movlw 1 ; select bank2/3 |
5322 0212 0087 movwf 7 |
5323 0213 3501 lslf 1,w |
5324 0214 00F0 movwf ??_I2C2_Interrupt_Master |
5325 0215 0870 movf ??_I2C2_Interrupt_Master,w |
5326 0216 00F3 movwf I2C2_Interrupt_Master@tmp_923 |
5327 |
5328 ;I2C2.c: 277: tmp |= 0x01; |
5329 0217 1473 bsf I2C2_Interrupt_Master@tmp_923,0 |
5330 |
5331 ;I2C2.c: 278: SSP2BUF = tmp; |
5332 0218 0873 movf I2C2_Interrupt_Master@tmp_923,w |
5333 0219 0024 movlb 4 ; select bank4 |
5334 021A 0099 movwf 25 ;volatile |
5335 |
5336 ;I2C2.c: 279: break; |
5337 021B 0008 return |
5338 021C i1l373: |
5339 ;I2C2.c: 280: case 0x8: |
5340 |
5341 |
5342 ;I2C2.c: 282: if (!SSP2CON2bits.ACKSTAT) { |
5343 021C 0024 movlb 4 ; select bank4 |
5344 021D 1B1E btfsc 30,6 ;volatile |
5345 021E 2A2C goto i1l2827 |
5346 |
5347 ;I2C2.c: 284: i2c_data_p->operating_state = 0x3; |
5348 021F 3003 movlw 3 |
5349 0220 00F0 movwf ??_I2C2_Interrupt_Master |
5350 0221 0020 movlb 0 ; select bank0 |
5351 0222 0869 movf I2C2@i2c_data_p,w |
5352 0223 3E47 addlw 71 |
5353 0224 0086 movwf 6 |
5354 0225 3001 movlw 1 ; select bank2/3 |
5355 0226 0087 movwf 7 |
5356 0227 0870 movf ??_I2C2_Interrupt_Master,w |
5357 0228 0081 movwf 1 |
5358 |
5359 ;I2C2.c: 285: SSP2CON2bits.RCEN = 1; |
5360 0229 0024 movlb 4 ; select bank4 |
5361 022A 159E bsf 30,3 ;volatile |
5362 |
5363 ;I2C2.c: 286: } else { |
5364 022B 0008 return |
5365 022C i1l2827: |
5366 |
5367 ;I2C2.c: 288: i2c_data_p->operating_state = 0x1; |
5368 022C 0020 movlb 0 ; select bank0 |
5369 022D 0869 movf I2C2@i2c_data_p,w |
5370 022E 3E47 addlw 71 |
5371 022F 0086 movwf 6 |
5372 0230 3001 movlw 1 ; select bank2/3 |
5373 0231 0087 movwf 7 |
5374 0232 0181 clrf 1 |
5375 0233 0A81 incf 1,f |
5376 |
5377 ;I2C2.c: 289: SSP2CON2bits.PEN = 1; |
5378 0234 0024 movlb 4 ; select bank4 |
5379 0235 151E bsf 30,2 ;volatile |
5380 |
5381 ;I2C2.c: 290: i2c_data_p->master_status = 0x23; |
5382 0236 3023 movlw 35 |
5383 0237 00F0 movwf ??_I2C2_Interrupt_Master |
5384 0238 0020 movlb 0 ; select bank0 |
5385 0239 0869 movf I2C2@i2c_data_p,w |
5386 023A 3E4A addlw 74 |
5387 023B 0086 movwf 6 |
5388 023C 3001 movlw 1 ; select bank2/3 |
5389 023D 0087 movwf 7 |
5390 023E 0870 movf ??_I2C2_Interrupt_Master,w |
5391 023F 0081 movwf 1 |
5392 |
5393 ;I2C2.c: 291: i2c_data_p->return_status = 0x33; |
5394 0240 3033 movlw 51 |
5395 0241 00F0 movwf ??_I2C2_Interrupt_Master |
5396 0242 0869 movf I2C2@i2c_data_p,w |
5397 0243 3E48 addlw 72 |
5398 0244 0086 movwf 6 |
5399 0245 3001 movlw 1 ; select bank2/3 |
5400 0246 0087 movwf 7 |
5401 0247 0870 movf ??_I2C2_Interrupt_Master,w |
5402 0248 0081 movwf 1 |
5403 |
5404 ;I2C2.c: 292: } |
5405 ;I2C2.c: 293: break; |
5406 0249 0008 return |
5407 024A i1l2831: |
5408 ;I2C2.c: 294: case 0x3: |
5409 |
5410 |
5411 ;I2C2.c: 297: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = SSP2BUF; |
5412 024A 0024 movlb 4 ; select bank4 |
5413 024B 0819 movf 25,w ;volatile |
5414 024C 00F0 movwf ??_I2C2_Interrupt_Master |
5415 024D 0020 movlb 0 ; select bank0 |
5416 024E 0869 movf I2C2@i2c_data_p,w |
5417 024F 3E23 addlw 35 |
5418 0250 0086 movwf 6 |
5419 0251 3001 movlw 1 ; select bank2/3 |
5420 0252 0087 movwf 7 |
5421 0253 0801 movf 1,w |
5422 0254 0769 addwf I2C2@i2c_data_p,w |
5423 0255 00F1 movwf ??_I2C2_Interrupt_Master+1 |
5424 0256 0871 movf ??_I2C2_Interrupt_Master+1,w |
5425 0257 0086 movwf 6 |
5426 0258 3001 movlw 1 ; select bank2/3 |
5427 0259 0087 movwf 7 |
5428 025A 0870 movf ??_I2C2_Interrupt_Master,w |
5429 025B 0081 movwf 1 |
5430 |
5431 ;I2C2.c: 298: i2c_data_p->buffer_in_write_ind++; |
5432 025C 3001 movlw 1 |
5433 025D 00F0 movwf ??_I2C2_Interrupt_Master |
5434 025E 0869 movf I2C2@i2c_data_p,w |
5435 025F 3E23 addlw 35 |
5436 0260 0086 movwf 6 |
5437 0261 3001 movlw 1 ; select bank2/3 |
5438 0262 0087 movwf 7 |
5439 0263 0870 movf ??_I2C2_Interrupt_Master,w |
5440 0264 0781 addwf 1,f |
5441 |
5442 ;I2C2.c: 299: if (i2c_data_p->buffer_in_write_ind < i2c_data_p->buffer_in_len) { |
5443 0265 0869 movf I2C2@i2c_data_p,w |
5444 0266 3E23 addlw 35 |
5445 0267 0086 movwf 6 |
5446 0268 3001 movlw 1 ; select bank2/3 |
5447 0269 0087 movwf 7 |
5448 026A 0869 movf I2C2@i2c_data_p,w |
5449 026B 3E20 addlw 32 |
5450 026C 0084 movwf 4 |
5451 026D 3001 movlw 1 ; select bank2/3 |
5452 026E 0085 movwf 5 |
5453 026F 0800 movf 0,w |
5454 0270 0201 subwf 1,w |
5455 0271 1803 skipnc |
5456 0272 2A80 goto i1l2841 |
5457 |
5458 ;I2C2.c: 301: i2c_data_p->operating_state = 0xA; |
5459 0273 300A movlw 10 |
5460 0274 00F0 movwf ??_I2C2_Interrupt_Master |
5461 0275 0869 movf I2C2@i2c_data_p,w |
5462 0276 3E47 addlw 71 |
5463 0277 0086 movwf 6 |
5464 0278 3001 movlw 1 ; select bank2/3 |
5465 0279 0087 movwf 7 |
5466 027A 0870 movf ??_I2C2_Interrupt_Master,w |
5467 027B 0081 movwf 1 |
5468 |
5469 ;I2C2.c: 302: SSP2CON2bits.ACKDT = 0; |
5470 027C 0024 movlb 4 ; select bank4 |
5471 027D 129E bcf 30,5 ;volatile |
5472 |
5473 ;I2C2.c: 303: SSP2CON2bits.ACKEN = 1; |
5474 027E 161E bsf 30,4 ;volatile |
5475 |
5476 ;I2C2.c: 304: } else { |
5477 027F 0008 return |
5478 0280 i1l2841: |
5479 |
5480 ;I2C2.c: 306: i2c_data_p->operating_state = 0xB; |
5481 0280 300B movlw 11 |
5482 0281 00F0 movwf ??_I2C2_Interrupt_Master |
5483 0282 0020 movlb 0 ; select bank0 |
5484 0283 0869 movf I2C2@i2c_data_p,w |
5485 0284 3E47 addlw 71 |
5486 0285 0086 movwf 6 |
5487 0286 3001 movlw 1 ; select bank2/3 |
5488 0287 0087 movwf 7 |
5489 0288 0870 movf ??_I2C2_Interrupt_Master,w |
5490 0289 0081 movwf 1 |
5491 |
5492 ;I2C2.c: 307: SSP2CON2bits.ACKDT = 1; |
5493 028A 0024 movlb 4 ; select bank4 |
5494 028B 169E bsf 30,5 ;volatile |
5495 |
5496 ;I2C2.c: 308: SSP2CON2bits.ACKEN = 1; |
5497 028C 161E bsf 30,4 ;volatile |
5498 |
5499 ;I2C2.c: 309: } |
5500 ;I2C2.c: 310: break; |
5501 028D 0008 return |
5502 028E i1l2847: |
5503 ;I2C2.c: 311: case 0xA: |
5504 |
5505 |
5506 ;I2C2.c: 313: i2c_data_p->operating_state = 0x3; |
5507 028E 3003 movlw 3 |
5508 028F 00F0 movwf ??_I2C2_Interrupt_Master |
5509 0290 0020 movlb 0 ; select bank0 |
5510 0291 0869 movf I2C2@i2c_data_p,w |
5511 0292 3E47 addlw 71 |
5512 0293 0086 movwf 6 |
5513 0294 3001 movlw 1 ; select bank2/3 |
5514 0295 0087 movwf 7 |
5515 0296 0870 movf ??_I2C2_Interrupt_Master,w |
5516 0297 0081 movwf 1 |
5517 |
5518 ;I2C2.c: 314: SSP2CON2bits.RCEN = 1; |
5519 0298 0024 movlb 4 ; select bank4 |
5520 0299 159E bsf 30,3 ;volatile |
5521 |
5522 ;I2C2.c: 315: break; |
5523 029A 0008 return |
5524 029B i1l2851: |
5525 ;I2C2.c: 316: case 0xB: |
5526 |
5527 |
5528 ;I2C2.c: 318: i2c_data_p->operating_state = 0x1; |
5529 029B 0020 movlb 0 ; select bank0 |
5530 029C 0869 movf I2C2@i2c_data_p,w |
5531 029D 3E47 addlw 71 |
5532 029E 0086 movwf 6 |
5533 029F 3001 movlw 1 ; select bank2/3 |
5534 02A0 0087 movwf 7 |
5535 02A1 0181 clrf 1 |
5536 02A2 0A81 incf 1,f |
5537 |
5538 ;I2C2.c: 319: SSP2CON2bits.PEN = 1; |
5539 02A3 0024 movlb 4 ; select bank4 |
5540 02A4 151E bsf 30,2 ;volatile |
5541 |
5542 ;I2C2.c: 320: i2c_data_p->master_status = 0x23; |
5543 02A5 3023 movlw 35 |
5544 02A6 00F0 movwf ??_I2C2_Interrupt_Master |
5545 02A7 0020 movlb 0 ; select bank0 |
5546 02A8 0869 movf I2C2@i2c_data_p,w |
5547 02A9 3E4A addlw 74 |
5548 02AA 0086 movwf 6 |
5549 02AB 3001 movlw 1 ; select bank2/3 |
5550 02AC 0087 movwf 7 |
5551 02AD 0870 movf ??_I2C2_Interrupt_Master,w |
5552 02AE 0081 movwf 1 |
5553 |
5554 ;I2C2.c: 321: i2c_data_p->return_status = 0x32; |
5555 02AF 3032 movlw 50 |
5556 02B0 00F0 movwf ??_I2C2_Interrupt_Master |
5557 02B1 0869 movf I2C2@i2c_data_p,w |
5558 02B2 3E48 addlw 72 |
5559 02B3 0086 movwf 6 |
5560 02B4 3001 movlw 1 ; select bank2/3 |
5561 02B5 0087 movwf 7 |
5562 02B6 0870 movf ??_I2C2_Interrupt_Master,w |
5563 02B7 0081 movwf 1 |
5564 |
5565 ;I2C2.c: 323: } |
5566 |
5567 ;I2C2.c: 322: break; |
5568 02B8 0008 return |
5569 02B9 i1l2857: |
5570 02B9 0869 movf I2C2@i2c_data_p,w |
5571 02BA 3E47 addlw 71 |
5572 02BB 0086 movwf 6 |
5573 02BC 3001 movlw 1 ; select bank2/3 |
5574 02BD 0087 movwf 7 |
5575 02BE 0801 movf 1,w |
5576 |
5577 ; Switch size 1, requested type "space" |
5578 ; Number of cases is 9, Range of values is 1 to 11 |
5579 ; switch strategies available: |
5580 ; Name Instructions Cycles |
5581 ; simple_byte 28 15 (average) |
5582 ; direct_byte 31 9 (fixed) |
5583 ; jumptable 263 9 (fixed) |
5584 ; Chosen strategy is simple_byte |
5585 02BF 3A01 xorlw 1 ; case 1 |
5586 02C0 1903 skipnz |
5587 02C1 2ADC goto i1l381 |
5588 02C2 3A02 xorlw 2 ; case 3 |
5589 02C3 1903 skipnz |
5590 02C4 2A4A goto i1l2831 |
5591 02C5 3A06 xorlw 6 ; case 5 |
5592 02C6 1903 skipnz |
5593 02C7 2992 goto i1l2797 |
5594 02C8 3A03 xorlw 3 ; case 6 |
5595 02C9 1903 skipnz |
5596 02CA 2A05 goto i1l2815 |
5597 02CB 3A01 xorlw 1 ; case 7 |
5598 02CC 1903 skipnz |
5599 02CD 29A4 goto i1l366 |
5600 02CE 3A0F xorlw 15 ; case 8 |
5601 02CF 1903 skipnz |
5602 02D0 2A1C goto i1l373 |
5603 02D1 3A01 xorlw 1 ; case 9 |
5604 02D2 1903 skipnz |
5605 02D3 29D8 goto i1l369 |
5606 02D4 3A03 xorlw 3 ; case 10 |
5607 02D5 1903 skipnz |
5608 02D6 2A8E goto i1l2847 |
5609 02D7 3A01 xorlw 1 ; case 11 |
5610 02D8 1903 skipnz |
5611 02D9 2A9B goto i1l2851 |
5612 02DA 2ADC goto i1l381 |
5613 02DB 0008 return |
5614 02DC i1l381: |
5615 02DC 0008 return |
5616 02DD __end_of_I2C2_Interrupt_Master: |
5617 |
5618 psect text22 |
5619 0BC5 __ptext22: |
5620 ;; *************** function _I2C1_Interrupt_Handler ***************** |
5621 ;; Defined at: |
5622 ;; line 138 in file "I2C1.c" |
5623 ;; Parameters: Size Location Type |
5624 ;; None |
5625 ;; Auto vars: Size Location Type |
5626 ;; None |
5627 ;; Return value: Size Location Type |
5628 ;; None void |
5629 ;; Registers used: |
5630 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack |
5631 ;; Tracked objects: |
5632 ;; On entry : 0/0 |
5633 ;; On exit : 0/0 |
5634 ;; Unchanged: 0/0 |
5635 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
5636 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
5637 ;; Locals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
5638 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
5639 ;; Totals: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
5640 ;;Total ram usage: 0 bytes |
5641 ;; Hardware stack levels used: 1 |
5642 ;; Hardware stack levels required when called: 2 |
5643 ;; This function calls: |
5644 ;; _I2C1_Interrupt_Master |
5645 ;; _I2C1_Interrupt_Slave |
5646 ;; This function is called by: |
5647 ;; _InterruptHandler |
5648 ;; This function uses a non-reentrant model |
5649 ;; |
5650 |
5651 |
5652 ;psect for function _I2C1_Interrupt_Handler |
5653 0BC5 _I2C1_Interrupt_Handler: |
5654 |
5655 ;I2C1.c: 140: if (i2c_data_p->operating_mode == 0x11) { |
5656 |
5657 ;incstack = 0 |
5658 ; Regs used in _I2C1_Interrupt_Handler: [wreg-fsr1h+status,2+status,0+pclath+cstack] |
5659 0BC5 0879 movf _i2c_data_p,w |
5660 0BC6 3E46 addlw 70 |
5661 0BC7 0086 movwf 6 |
5662 0BC8 0187 clrf 7 |
5663 0BC9 0801 movf 1,w |
5664 0BCA 3A11 xorlw 17 |
5665 0BCB 1D03 skipz |
5666 0BCC 2BD0 goto i1l3163 |
5667 |
5668 ;I2C1.c: 141: I2C1_Interrupt_Master(); |
5669 0BCD 3182 22DD fcall _I2C1_Interrupt_Master |
5670 |
5671 ;I2C1.c: 142: } else if (i2c_data_p->operating_mode == 0x10) { |
5672 0BCF 0008 return |
5673 0BD0 i1l3163: |
5674 0BD0 0879 movf _i2c_data_p,w |
5675 0BD1 3E46 addlw 70 |
5676 0BD2 0086 movwf 6 |
5677 0BD3 0187 clrf 7 |
5678 0BD4 0801 movf 1,w |
5679 0BD5 3A10 xorlw 16 |
5680 0BD6 1D03 skipz |
5681 0BD7 0008 return |
5682 |
5683 ;I2C1.c: 143: I2C1_Interrupt_Slave(); |
5684 0BD8 318E 269A fcall _I2C1_Interrupt_Slave |
5685 0BDA 0008 return |
5686 0BDB __end_of_I2C1_Interrupt_Handler: |
5687 |
5688 psect text23 |
5689 0E9A __ptext23: |
5690 ;; *************** function _I2C1_Interrupt_Slave ***************** |
5691 ;; Defined at: |
5692 ;; line 327 in file "I2C1.c" |
5693 ;; Parameters: Size Location Type |
5694 ;; None |
5695 ;; Auto vars: Size Location Type |
5696 ;; data_read_fr 1 7[COMMON] unsigned char |
5697 ;; received_dat 1 6[COMMON] unsigned char |
5698 ;; data_written 1 5[COMMON] unsigned char |
5699 ;; overrun_erro 1 4[COMMON] unsigned char |
5700 ;; Return value: Size Location Type |
5701 ;; None void |
5702 ;; Registers used: |
5703 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0, pclath, cstack |
5704 ;; Tracked objects: |
5705 ;; On entry : 0/0 |
5706 ;; On exit : 0/0 |
5707 ;; Unchanged: 0/0 |
5708 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
5709 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
5710 ;; Locals: 4 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
5711 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
5712 ;; Totals: 6 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
5713 ;;Total ram usage: 6 bytes |
5714 ;; Hardware stack levels used: 1 |
5715 ;; Hardware stack levels required when called: 1 |
5716 ;; This function calls: |
5717 ;; _I2C1_Process_Receive |
5718 ;; This function is called by: |
5719 ;; _I2C1_Interrupt_Handler |
5720 ;; This function uses a non-reentrant model |
5721 ;; |
5722 |
5723 |
5724 ;psect for function _I2C1_Interrupt_Slave |
5725 0E9A _I2C1_Interrupt_Slave: |
5726 |
5727 ;I2C1.c: 328: uint8_t received_data; |
5728 ;I2C1.c: 329: uint8_t data_read_from_buffer = 0; |
5729 |
5730 ;incstack = 0 |
5731 ; Regs used in _I2C1_Interrupt_Slave: [wreg-fsr1h+status,2+status,0+pclath+cstack] |
5732 0E9A 01F7 clrf I2C1_Interrupt_Slave@data_read_from_buffer |
5733 |
5734 ;I2C1.c: 330: uint8_t data_written_to_buffer = 0; |
5735 0E9B 01F5 clrf I2C1_Interrupt_Slave@data_written_to_buffer |
5736 |
5737 ;I2C1.c: 331: uint8_t overrun_error = 0; |
5738 0E9C 01F4 clrf I2C1_Interrupt_Slave@overrun_error |
5739 |
5740 ;I2C1.c: 334: if (SSP1CON1bits.SSPOV == 1) { |
5741 0E9D 0024 movlb 4 ; select bank4 |
5742 0E9E 1F15 btfss 21,6 ;volatile |
5743 0E9F 2EB1 goto i1l2937 |
5744 |
5745 ;I2C1.c: 335: SSP1CON1bits.SSPOV = 0; |
5746 0EA0 1315 bcf 21,6 ;volatile |
5747 |
5748 ;I2C1.c: 339: i2c_data_p->operating_state = 0x1; |
5749 0EA1 0879 movf _i2c_data_p,w |
5750 0EA2 3E47 addlw 71 |
5751 0EA3 0086 movwf 6 |
5752 0EA4 0187 clrf 7 |
5753 0EA5 0181 clrf 1 |
5754 0EA6 0A81 incf 1,f |
5755 |
5756 ;I2C1.c: 340: overrun_error = 1; |
5757 0EA7 01F4 clrf I2C1_Interrupt_Slave@overrun_error |
5758 0EA8 0AF4 incf I2C1_Interrupt_Slave@overrun_error,f |
5759 |
5760 ;I2C1.c: 341: i2c_data_p->return_status = 0x36; |
5761 0EA9 3036 movlw 54 |
5762 0EAA 00F2 movwf ??_I2C1_Interrupt_Slave |
5763 0EAB 0879 movf _i2c_data_p,w |
5764 0EAC 3E48 addlw 72 |
5765 0EAD 0086 movwf 6 |
5766 0EAE 0187 clrf 7 |
5767 0EAF 0872 movf ??_I2C1_Interrupt_Slave,w |
5768 0EB0 0081 movwf 1 |
5769 0EB1 i1l2937: |
5770 |
5771 ;I2C1.c: 342: } |
5772 ;I2C1.c: 345: if (SSP1STATbits.BF == 1) { |
5773 0EB1 1C14 btfss 20,0 ;volatile |
5774 0EB2 2EB9 goto i1l2943 |
5775 |
5776 ;I2C1.c: 346: received_data = SSP1BUF; |
5777 0EB3 0811 movf 17,w ;volatile |
5778 0EB4 00F2 movwf ??_I2C1_Interrupt_Slave |
5779 0EB5 0872 movf ??_I2C1_Interrupt_Slave,w |
5780 0EB6 00F6 movwf I2C1_Interrupt_Slave@received_data |
5781 |
5782 ;I2C1.c: 348: data_read_from_buffer = 1; |
5783 0EB7 01F7 clrf I2C1_Interrupt_Slave@data_read_from_buffer |
5784 0EB8 0AF7 incf I2C1_Interrupt_Slave@data_read_from_buffer,f |
5785 0EB9 i1l2943: |
5786 |
5787 ;I2C1.c: 349: } |
5788 ;I2C1.c: 351: if (!overrun_error) { |
5789 0EB9 08F4 movf I2C1_Interrupt_Slave@overrun_error,f |
5790 0EBA 1903 btfsc 3,2 |
5791 0EBB 2FE4 goto i1l3035 |
5792 0EBC 2FF6 goto i1l3037 |
5793 0EBD i1l181: |
5794 ;I2C1.c: 353: case 0x1: |
5795 |
5796 ;I2C1.c: 352: switch (i2c_data_p->operating_state) { |
5797 |
5798 |
5799 ;I2C1.c: 354: { |
5800 ;I2C1.c: 356: if (SSP1STATbits.S == 1) { |
5801 0EBD 1D94 btfss 20,3 ;volatile |
5802 0EBE 2FF6 goto i1l3037 |
5803 |
5804 ;I2C1.c: 357: i2c_data_p->buffer_in_len_tmp = 0; |
5805 0EBF 0879 movf _i2c_data_p,w |
5806 0EC0 3E21 addlw 33 |
5807 0EC1 0086 movwf 6 |
5808 0EC2 0187 clrf 7 |
5809 0EC3 0181 clrf 1 |
5810 |
5811 ;I2C1.c: 358: i2c_data_p->operating_state = 0x2; |
5812 0EC4 3002 movlw 2 |
5813 0EC5 2ED0 goto L9 |
5814 0EC6 i1l184: |
5815 ;I2C1.c: 361: } |
5816 ;I2C1.c: 362: case 0x2: |
5817 |
5818 ;I2C1.c: 359: } |
5819 ;I2C1.c: 360: break; |
5820 |
5821 |
5822 ;I2C1.c: 363: { |
5823 ;I2C1.c: 365: if (SSP1STATbits.P == 1) { |
5824 0EC6 1A14 btfsc 20,4 ;volatile |
5825 0EC7 2F7C goto i1l3007 |
5826 |
5827 ;I2C1.c: 368: } else if (data_read_from_buffer) { |
5828 |
5829 ;I2C1.c: 367: i2c_data_p->operating_state = 0x1; |
5830 0EC8 0877 movf I2C1_Interrupt_Slave@data_read_from_buffer,w |
5831 0EC9 1903 btfsc 3,2 |
5832 0ECA 2FF6 goto i1l3037 |
5833 |
5834 ;I2C1.c: 369: if (SSP1STATbits.D_nA == 0) { |
5835 0ECB 1A94 btfsc 20,5 ;volatile |
5836 0ECC 2FD5 goto i1l3031 |
5837 |
5838 ;I2C1.c: 371: if (SSP1STATbits.R_nW == 0) { |
5839 0ECD 1914 btfsc 20,2 ;volatile |
5840 0ECE 2FCC goto i1l3027 |
5841 |
5842 ;I2C1.c: 373: i2c_data_p->operating_state = 0x3; |
5843 0ECF 3003 movlw 3 |
5844 0ED0 L9: |
5845 0ED0 00F2 movwf ??_I2C1_Interrupt_Slave |
5846 0ED1 0879 movf _i2c_data_p,w |
5847 0ED2 3E47 addlw 71 |
5848 0ED3 2FDF goto L13 |
5849 0ED4 i1l2965: |
5850 ;I2C1.c: 388: case 0x4: |
5851 |
5852 ;I2C1.c: 386: } |
5853 ;I2C1.c: 387: send: |
5854 |
5855 ;I2C1.c: 383: } |
5856 ;I2C1.c: 384: } |
5857 ;I2C1.c: 385: break; |
5858 |
5859 ;I2C1.c: 382: i2c_data_p->return_status = 0x37; |
5860 |
5861 ;I2C1.c: 381: i2c_data_p->operating_state = 0x1; |
5862 |
5863 ;I2C1.c: 379: } |
5864 ;I2C1.c: 380: } else { |
5865 |
5866 ;I2C1.c: 378: goto send; |
5867 |
5868 ;I2C1.c: 376: i2c_data_p->operating_state = 0x4; |
5869 |
5870 ;I2C1.c: 374: } else { |
5871 |
5872 |
5873 ;I2C1.c: 389: { |
5874 ;I2C1.c: 390: if (!i2c_data_p->slave_sending_data) { |
5875 0ED4 0879 movf _i2c_data_p,w |
5876 0ED5 3E4C addlw 76 |
5877 0ED6 0086 movwf 6 |
5878 0ED7 0187 clrf 7 |
5879 0ED8 0881 movf 1,f |
5880 0ED9 1D03 skipz |
5881 0EDA 2EFA goto i1l2977 |
5882 |
5883 ;I2C1.c: 392: if (I2C1_Process_Receive(i2c_data_p->slave_in_last_byte)) { |
5884 0EDB 0879 movf _i2c_data_p,w |
5885 0EDC 3E4B addlw 75 |
5886 0EDD 0086 movwf 6 |
5887 0EDE 0187 clrf 7 |
5888 0EDF 0801 movf 1,w |
5889 0EE0 318B 2391 318E fcall _I2C1_Process_Receive |
5890 0EE3 3A00 xorlw 0 |
5891 0EE4 1903 skipnz |
5892 0EE5 2F1F goto i1l2983 |
5893 |
5894 ;I2C1.c: 394: SSP1BUF = i2c_data_p->buffer_out[0]; |
5895 0EE6 0879 movf _i2c_data_p,w |
5896 0EE7 3E24 addlw 36 |
5897 0EE8 0086 movwf 6 |
5898 0EE9 0187 clrf 7 |
5899 0EEA 0801 movf 1,w |
5900 0EEB 0024 movlb 4 ; select bank4 |
5901 0EEC 0091 movwf 17 ;volatile |
5902 |
5903 ;I2C1.c: 395: i2c_data_p->buffer_out_ind = 1; |
5904 0EED 0879 movf _i2c_data_p,w |
5905 0EEE 3E45 addlw 69 |
5906 0EEF 0086 movwf 6 |
5907 0EF0 0187 clrf 7 |
5908 0EF1 0181 clrf 1 |
5909 0EF2 0A81 incf 1,f |
5910 |
5911 ;I2C1.c: 396: i2c_data_p->slave_sending_data = 1; |
5912 0EF3 0879 movf _i2c_data_p,w |
5913 0EF4 3E4C addlw 76 |
5914 0EF5 0086 movwf 6 |
5915 0EF6 0187 clrf 7 |
5916 0EF7 0181 clrf 1 |
5917 0EF8 0A81 incf 1,f |
5918 0EF9 2F1C goto i1l2981 |
5919 0EFA i1l2977: |
5920 ;I2C1.c: 402: } |
5921 ;I2C1.c: 403: } else { |
5922 |
5923 ;I2C1.c: 401: i2c_data_p->operating_state = 0x1; |
5924 |
5925 ;I2C1.c: 400: i2c_data_p->slave_sending_data = 0; |
5926 |
5927 ;I2C1.c: 398: } else { |
5928 |
5929 ;I2C1.c: 397: data_written_to_buffer = 1; |
5930 |
5931 |
5932 ;I2C1.c: 405: if (i2c_data_p->buffer_out_ind < i2c_data_p->buffer_out_len) { |
5933 0EFA 0879 movf _i2c_data_p,w |
5934 0EFB 3E45 addlw 69 |
5935 0EFC 0086 movwf 6 |
5936 0EFD 0187 clrf 7 |
5937 0EFE 0879 movf _i2c_data_p,w |
5938 0EFF 3E44 addlw 68 |
5939 0F00 0084 movwf 4 |
5940 0F01 0185 clrf 5 |
5941 0F02 0800 movf 0,w |
5942 0F03 0201 subwf 1,w |
5943 0F04 1803 skipnc |
5944 0F05 2F1F goto i1l2983 |
5945 |
5946 ;I2C1.c: 406: SSP1BUF = i2c_data_p->buffer_out[i2c_data_p->buffer_out_ind]; |
5947 0F06 0879 movf _i2c_data_p,w |
5948 0F07 3E45 addlw 69 |
5949 0F08 0086 movwf 6 |
5950 0F09 0187 clrf 7 |
5951 0F0A 0801 movf 1,w |
5952 0F0B 3E24 addlw 36 |
5953 0F0C 0779 addwf _i2c_data_p,w |
5954 0F0D 00F2 movwf ??_I2C1_Interrupt_Slave |
5955 0F0E 0872 movf ??_I2C1_Interrupt_Slave,w |
5956 0F0F 0086 movwf 6 |
5957 0F10 0187 clrf 7 |
5958 0F11 0801 movf 1,w |
5959 0F12 0024 movlb 4 ; select bank4 |
5960 0F13 0091 movwf 17 ;volatile |
5961 |
5962 ;I2C1.c: 407: i2c_data_p->buffer_out_ind++; |
5963 0F14 3001 movlw 1 |
5964 0F15 00F2 movwf ??_I2C1_Interrupt_Slave |
5965 0F16 0879 movf _i2c_data_p,w |
5966 0F17 3E45 addlw 69 |
5967 0F18 0086 movwf 6 |
5968 0F19 0187 clrf 7 |
5969 0F1A 0872 movf ??_I2C1_Interrupt_Slave,w |
5970 0F1B 0781 addwf 1,f |
5971 0F1C i1l2981: |
5972 |
5973 ;I2C1.c: 408: data_written_to_buffer = 1; |
5974 0F1C 01F5 clrf I2C1_Interrupt_Slave@data_written_to_buffer |
5975 0F1D 0AF5 incf I2C1_Interrupt_Slave@data_written_to_buffer,f |
5976 |
5977 ;I2C1.c: 409: } else { |
5978 0F1E 2FF6 goto i1l3037 |
5979 0F1F i1l2983: |
5980 |
5981 ;I2C1.c: 411: i2c_data_p->slave_sending_data = 0; |
5982 0F1F 0879 movf _i2c_data_p,w |
5983 0F20 3E4C addlw 76 |
5984 0F21 0086 movwf 6 |
5985 0F22 0187 clrf 7 |
5986 0F23 0181 clrf 1 |
5987 0F24 2F7C goto i1l3007 |
5988 0F25 i1l200: |
5989 ;I2C1.c: 416: } |
5990 ;I2C1.c: 417: case 0x3: |
5991 |
5992 ;I2C1.c: 413: } |
5993 ;I2C1.c: 414: } |
5994 ;I2C1.c: 415: break; |
5995 |
5996 ;I2C1.c: 412: i2c_data_p->operating_state = 0x1; |
5997 |
5998 |
5999 ;I2C1.c: 418: { |
6000 ;I2C1.c: 420: if (SSP1STATbits.P == 1) { |
6001 0F25 1E14 btfss 20,4 ;volatile |
6002 0F26 2F83 goto i1l3009 |
6003 |
6004 ;I2C1.c: 422: if (data_read_from_buffer) { |
6005 0F27 0877 movf I2C1_Interrupt_Slave@data_read_from_buffer,w |
6006 0F28 1903 btfsc 3,2 |
6007 0F29 2F70 goto i1l3005 |
6008 |
6009 ;I2C1.c: 423: if (SSP1STATbits.D_nA == 1) { |
6010 0F2A 1E94 btfss 20,5 ;volatile |
6011 0F2B 2F62 goto i1l3003 |
6012 |
6013 ;I2C1.c: 426: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = received_data; |
6014 0F2C 0876 movf I2C1_Interrupt_Slave@received_data,w |
6015 0F2D 00F2 movwf ??_I2C1_Interrupt_Slave |
6016 0F2E 0879 movf _i2c_data_p,w |
6017 0F2F 3E23 addlw 35 |
6018 0F30 0086 movwf 6 |
6019 0F31 0187 clrf 7 |
6020 0F32 0801 movf 1,w |
6021 0F33 0779 addwf _i2c_data_p,w |
6022 0F34 00F3 movwf ??_I2C1_Interrupt_Slave+1 |
6023 0F35 0873 movf ??_I2C1_Interrupt_Slave+1,w |
6024 0F36 0086 movwf 6 |
6025 0F37 0187 clrf 7 |
6026 0F38 0872 movf ??_I2C1_Interrupt_Slave,w |
6027 0F39 0081 movwf 1 |
6028 |
6029 ;I2C1.c: 427: if (i2c_data_p->buffer_in_write_ind == 32-1) { |
6030 0F3A 0879 movf _i2c_data_p,w |
6031 0F3B 3E23 addlw 35 |
6032 0F3C 0086 movwf 6 |
6033 0F3D 0187 clrf 7 |
6034 0F3E 0801 movf 1,w |
6035 0F3F 3A1F xorlw 31 |
6036 0F40 1D03 skipz |
6037 0F41 2F48 goto i1l2997 |
6038 |
6039 ;I2C1.c: 428: i2c_data_p->buffer_in_write_ind = 0; |
6040 0F42 0879 movf _i2c_data_p,w |
6041 0F43 3E23 addlw 35 |
6042 0F44 0086 movwf 6 |
6043 0F45 0187 clrf 7 |
6044 0F46 0181 clrf 1 |
6045 |
6046 ;I2C1.c: 429: } else { |
6047 0F47 2F50 goto i1l205 |
6048 0F48 i1l2997: |
6049 |
6050 ;I2C1.c: 430: i2c_data_p->buffer_in_write_ind++; |
6051 0F48 3001 movlw 1 |
6052 0F49 00F2 movwf ??_I2C1_Interrupt_Slave |
6053 0F4A 0879 movf _i2c_data_p,w |
6054 0F4B 3E23 addlw 35 |
6055 0F4C 0086 movwf 6 |
6056 0F4D 0187 clrf 7 |
6057 0F4E 0872 movf ??_I2C1_Interrupt_Slave,w |
6058 0F4F 0781 addwf 1,f |
6059 0F50 i1l205: |
6060 |
6061 ;I2C1.c: 431: } |
6062 ;I2C1.c: 432: i2c_data_p->buffer_in_len_tmp++; |
6063 0F50 3001 movlw 1 |
6064 0F51 00F2 movwf ??_I2C1_Interrupt_Slave |
6065 0F52 0879 movf _i2c_data_p,w |
6066 0F53 3E21 addlw 33 |
6067 0F54 0086 movwf 6 |
6068 0F55 0187 clrf 7 |
6069 0F56 0872 movf ??_I2C1_Interrupt_Slave,w |
6070 0F57 0781 addwf 1,f |
6071 |
6072 ;I2C1.c: 434: i2c_data_p->slave_in_last_byte = received_data; |
6073 0F58 0876 movf I2C1_Interrupt_Slave@received_data,w |
6074 0F59 00F2 movwf ??_I2C1_Interrupt_Slave |
6075 0F5A 0879 movf _i2c_data_p,w |
6076 0F5B 3E4B addlw 75 |
6077 0F5C 0086 movwf 6 |
6078 0F5D 0187 clrf 7 |
6079 0F5E 0872 movf ??_I2C1_Interrupt_Slave,w |
6080 0F5F 0081 movwf 1 |
6081 |
6082 ;I2C1.c: 435: i2c_data_p->return_status = 0x34; |
6083 0F60 3034 movlw 52 |
6084 0F61 2F69 goto L12 |
6085 0F62 i1l3003: |
6086 ;I2C1.c: 436: } else { |
6087 |
6088 |
6089 ;I2C1.c: 437: i2c_data_p->operating_state = 0x1; |
6090 0F62 0879 movf _i2c_data_p,w |
6091 0F63 3E47 addlw 71 |
6092 0F64 0086 movwf 6 |
6093 0F65 0187 clrf 7 |
6094 0F66 0181 clrf 1 |
6095 0F67 0A81 incf 1,f |
6096 |
6097 ;I2C1.c: 438: i2c_data_p->return_status = 0x37; |
6098 0F68 3037 movlw 55 |
6099 0F69 L12: |
6100 0F69 00F2 movwf ??_I2C1_Interrupt_Slave |
6101 0F6A 0879 movf _i2c_data_p,w |
6102 0F6B 3E48 addlw 72 |
6103 0F6C 0086 movwf 6 |
6104 0F6D 0187 clrf 7 |
6105 0F6E 0872 movf ??_I2C1_Interrupt_Slave,w |
6106 0F6F 0081 movwf 1 |
6107 0F70 i1l3005: |
6108 |
6109 ;I2C1.c: 439: } |
6110 ;I2C1.c: 440: } |
6111 ;I2C1.c: 441: i2c_data_p->buffer_in_len += i2c_data_p->buffer_in_len_tmp; |
6112 0F70 0879 movf _i2c_data_p,w |
6113 0F71 3E21 addlw 33 |
6114 0F72 0086 movwf 6 |
6115 0F73 0187 clrf 7 |
6116 0F74 0801 movf 1,w |
6117 0F75 00F2 movwf ??_I2C1_Interrupt_Slave |
6118 0F76 0879 movf _i2c_data_p,w |
6119 0F77 3E20 addlw 32 |
6120 0F78 0086 movwf 6 |
6121 0F79 0187 clrf 7 |
6122 0F7A 0872 movf ??_I2C1_Interrupt_Slave,w |
6123 0F7B 0781 addwf 1,f |
6124 0F7C i1l3007: |
6125 |
6126 ;I2C1.c: 442: i2c_data_p->operating_state = 0x1; |
6127 0F7C 0879 movf _i2c_data_p,w |
6128 0F7D 3E47 addlw 71 |
6129 0F7E 0086 movwf 6 |
6130 0F7F 0187 clrf 7 |
6131 0F80 0181 clrf 1 |
6132 0F81 0A81 incf 1,f |
6133 |
6134 ;I2C1.c: 443: } else if (data_read_from_buffer) { |
6135 0F82 2FF6 goto i1l3037 |
6136 0F83 i1l3009: |
6137 0F83 0877 movf I2C1_Interrupt_Slave@data_read_from_buffer,w |
6138 0F84 1903 btfsc 3,2 |
6139 0F85 2FF6 goto i1l3037 |
6140 |
6141 ;I2C1.c: 444: if (SSP1STATbits.D_nA == 1) { |
6142 0F86 1E94 btfss 20,5 ;volatile |
6143 0F87 2FBE goto i1l209 |
6144 |
6145 ;I2C1.c: 446: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = received_data; |
6146 0F88 0876 movf I2C1_Interrupt_Slave@received_data,w |
6147 0F89 00F2 movwf ??_I2C1_Interrupt_Slave |
6148 0F8A 0879 movf _i2c_data_p,w |
6149 0F8B 3E23 addlw 35 |
6150 0F8C 0086 movwf 6 |
6151 0F8D 0187 clrf 7 |
6152 0F8E 0801 movf 1,w |
6153 0F8F 0779 addwf _i2c_data_p,w |
6154 0F90 00F3 movwf ??_I2C1_Interrupt_Slave+1 |
6155 0F91 0873 movf ??_I2C1_Interrupt_Slave+1,w |
6156 0F92 0086 movwf 6 |
6157 0F93 0187 clrf 7 |
6158 0F94 0872 movf ??_I2C1_Interrupt_Slave,w |
6159 0F95 0081 movwf 1 |
6160 |
6161 ;I2C1.c: 447: if (i2c_data_p->buffer_in_write_ind == 32-1) { |
6162 0F96 0879 movf _i2c_data_p,w |
6163 0F97 3E23 addlw 35 |
6164 0F98 0086 movwf 6 |
6165 0F99 0187 clrf 7 |
6166 0F9A 0801 movf 1,w |
6167 0F9B 3A1F xorlw 31 |
6168 0F9C 1D03 skipz |
6169 0F9D 2FA4 goto i1l3019 |
6170 |
6171 ;I2C1.c: 448: i2c_data_p->buffer_in_write_ind = 0; |
6172 0F9E 0879 movf _i2c_data_p,w |
6173 0F9F 3E23 addlw 35 |
6174 0FA0 0086 movwf 6 |
6175 0FA1 0187 clrf 7 |
6176 0FA2 0181 clrf 1 |
6177 |
6178 ;I2C1.c: 449: } else { |
6179 0FA3 2FAC goto i1l211 |
6180 0FA4 i1l3019: |
6181 |
6182 ;I2C1.c: 450: i2c_data_p->buffer_in_write_ind++; |
6183 0FA4 3001 movlw 1 |
6184 0FA5 00F2 movwf ??_I2C1_Interrupt_Slave |
6185 0FA6 0879 movf _i2c_data_p,w |
6186 0FA7 3E23 addlw 35 |
6187 0FA8 0086 movwf 6 |
6188 0FA9 0187 clrf 7 |
6189 0FAA 0872 movf ??_I2C1_Interrupt_Slave,w |
6190 0FAB 0781 addwf 1,f |
6191 0FAC i1l211: |
6192 |
6193 ;I2C1.c: 451: } |
6194 ;I2C1.c: 452: i2c_data_p->buffer_in_len_tmp++; |
6195 0FAC 3001 movlw 1 |
6196 0FAD 00F2 movwf ??_I2C1_Interrupt_Slave |
6197 0FAE 0879 movf _i2c_data_p,w |
6198 0FAF 3E21 addlw 33 |
6199 0FB0 0086 movwf 6 |
6200 0FB1 0187 clrf 7 |
6201 0FB2 0872 movf ??_I2C1_Interrupt_Slave,w |
6202 0FB3 0781 addwf 1,f |
6203 |
6204 ;I2C1.c: 454: i2c_data_p->slave_in_last_byte = received_data; |
6205 0FB4 0876 movf I2C1_Interrupt_Slave@received_data,w |
6206 0FB5 00F2 movwf ??_I2C1_Interrupt_Slave |
6207 0FB6 0879 movf _i2c_data_p,w |
6208 0FB7 3E4B addlw 75 |
6209 0FB8 0086 movwf 6 |
6210 0FB9 0187 clrf 7 |
6211 0FBA 0872 movf ??_I2C1_Interrupt_Slave,w |
6212 0FBB 0081 movwf 1 |
6213 |
6214 ;I2C1.c: 455: i2c_data_p->return_status = 0x34; |
6215 0FBC 3034 movlw 52 |
6216 0FBD 2FDC goto L14 |
6217 0FBE i1l209: |
6218 ;I2C1.c: 456: } else { |
6219 |
6220 |
6221 ;I2C1.c: 458: if (SSP1STATbits.R_nW == 1) { |
6222 0FBE 1D14 btfss 20,2 ;volatile |
6223 0FBF 2FD5 goto i1l3031 |
6224 |
6225 ;I2C1.c: 459: i2c_data_p->buffer_in_len += i2c_data_p->buffer_in_len_tmp; |
6226 0FC0 0879 movf _i2c_data_p,w |
6227 0FC1 3E21 addlw 33 |
6228 0FC2 0086 movwf 6 |
6229 0FC3 0187 clrf 7 |
6230 0FC4 0801 movf 1,w |
6231 0FC5 00F2 movwf ??_I2C1_Interrupt_Slave |
6232 0FC6 0879 movf _i2c_data_p,w |
6233 0FC7 3E20 addlw 32 |
6234 0FC8 0086 movwf 6 |
6235 0FC9 0187 clrf 7 |
6236 0FCA 0872 movf ??_I2C1_Interrupt_Slave,w |
6237 0FCB 0781 addwf 1,f |
6238 0FCC i1l3027: |
6239 |
6240 ;I2C1.c: 460: i2c_data_p->operating_state = 0x4; |
6241 0FCC 3004 movlw 4 |
6242 0FCD 00F2 movwf ??_I2C1_Interrupt_Slave |
6243 0FCE 0879 movf _i2c_data_p,w |
6244 0FCF 3E47 addlw 71 |
6245 0FD0 0086 movwf 6 |
6246 0FD1 0187 clrf 7 |
6247 0FD2 0872 movf ??_I2C1_Interrupt_Slave,w |
6248 0FD3 0081 movwf 1 |
6249 |
6250 ;I2C1.c: 462: goto send; |
6251 0FD4 2ED4 goto i1l2965 |
6252 0FD5 i1l3031: |
6253 ;I2C1.c: 463: } else { |
6254 |
6255 |
6256 ;I2C1.c: 465: i2c_data_p->operating_state = 0x1; |
6257 0FD5 0879 movf _i2c_data_p,w |
6258 0FD6 3E47 addlw 71 |
6259 0FD7 0086 movwf 6 |
6260 0FD8 0187 clrf 7 |
6261 0FD9 0181 clrf 1 |
6262 0FDA 0A81 incf 1,f |
6263 |
6264 ;I2C1.c: 466: i2c_data_p->return_status = 0x37; |
6265 0FDB 3037 movlw 55 |
6266 0FDC L14: |
6267 0FDC 00F2 movwf ??_I2C1_Interrupt_Slave |
6268 0FDD 0879 movf _i2c_data_p,w |
6269 0FDE 3E48 addlw 72 |
6270 0FDF L13: |
6271 0FDF 0086 movwf 6 |
6272 0FE0 0187 clrf 7 |
6273 0FE1 0872 movf ??_I2C1_Interrupt_Slave,w |
6274 0FE2 0081 movwf 1 |
6275 |
6276 ;I2C1.c: 471: } |
6277 ;I2C1.c: 472: } |
6278 |
6279 ;I2C1.c: 467: } |
6280 ;I2C1.c: 468: } |
6281 ;I2C1.c: 469: } |
6282 ;I2C1.c: 470: break; |
6283 0FE3 2FF6 goto i1l3037 |
6284 0FE4 i1l3035: |
6285 0FE4 0879 movf _i2c_data_p,w |
6286 0FE5 3E47 addlw 71 |
6287 0FE6 0086 movwf 6 |
6288 0FE7 0187 clrf 7 |
6289 0FE8 0801 movf 1,w |
6290 |
6291 ; Switch size 1, requested type "space" |
6292 ; Number of cases is 4, Range of values is 1 to 4 |
6293 ; switch strategies available: |
6294 ; Name Instructions Cycles |
6295 ; simple_byte 13 7 (average) |
6296 ; direct_byte 17 9 (fixed) |
6297 ; jumptable 263 9 (fixed) |
6298 ; Chosen strategy is simple_byte |
6299 0FE9 3A01 xorlw 1 ; case 1 |
6300 0FEA 1903 skipnz |
6301 0FEB 2EBD goto i1l181 |
6302 0FEC 3A03 xorlw 3 ; case 2 |
6303 0FED 1903 skipnz |
6304 0FEE 2EC6 goto i1l184 |
6305 0FEF 3A01 xorlw 1 ; case 3 |
6306 0FF0 1903 skipnz |
6307 0FF1 2F25 goto i1l200 |
6308 0FF2 3A07 xorlw 7 ; case 4 |
6309 0FF3 1903 skipnz |
6310 0FF4 2ED4 goto i1l2965 |
6311 0FF5 2FF6 goto i1l3037 |
6312 0FF6 i1l3037: |
6313 |
6314 ;I2C1.c: 473: } |
6315 ;I2C1.c: 476: if (data_read_from_buffer || data_written_to_buffer) { |
6316 0FF6 08F7 movf I2C1_Interrupt_Slave@data_read_from_buffer,f |
6317 0FF7 1903 btfsc 3,2 |
6318 0FF8 0875 movf I2C1_Interrupt_Slave@data_written_to_buffer,w |
6319 0FF9 1903 btfsc 3,2 |
6320 0FFA 0008 return |
6321 |
6322 ;I2C1.c: 478: if (SSP1CON1bits.CKP == 0) { |
6323 0FFB 0024 movlb 4 ; select bank4 |
6324 0FFC 1A15 btfsc 21,4 ;volatile |
6325 0FFD 0008 return |
6326 |
6327 ;I2C1.c: 479: SSP1CON1bits.CKP = 1; |
6328 0FFE 1615 bsf 21,4 ;volatile |
6329 0FFF 0008 return |
6330 1000 __end_of_I2C1_Interrupt_Slave: |
6331 |
6332 psect text24 |
6333 0B91 __ptext24: |
6334 ;; *************** function _I2C1_Process_Receive ***************** |
6335 ;; Defined at: |
6336 ;; line 522 in file "I2C1.c" |
6337 ;; Parameters: Size Location Type |
6338 ;; c 1 wreg unsigned char |
6339 ;; Auto vars: Size Location Type |
6340 ;; c 1 0[COMMON] unsigned char |
6341 ;; ret 1 1[COMMON] unsigned char |
6342 ;; btns 1 0 struct . |
6343 ;; Return value: Size Location Type |
6344 ;; 1 wreg unsigned char |
6345 ;; Registers used: |
6346 ;; wreg, fsr0l, fsr0h, status,2, status,0 |
6347 ;; Tracked objects: |
6348 ;; On entry : 0/0 |
6349 ;; On exit : 0/0 |
6350 ;; Unchanged: 0/0 |
6351 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
6352 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
6353 ;; Locals: 2 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
6354 ;; Temps: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
6355 ;; Totals: 2 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
6356 ;;Total ram usage: 2 bytes |
6357 ;; Hardware stack levels used: 1 |
6358 ;; This function calls: |
6359 ;; Nothing |
6360 ;; This function is called by: |
6361 ;; _I2C1_Interrupt_Slave |
6362 ;; This function uses a non-reentrant model |
6363 ;; |
6364 |
6365 |
6366 ;psect for function _I2C1_Process_Receive |
6367 0B91 _I2C1_Process_Receive: |
6368 |
6369 ;incstack = 0 |
6370 ; Regs used in _I2C1_Process_Receive: [wreg-fsr0h+status,2+status,0] |
6371 ;I2C1_Process_Receive@c stored from wreg |
6372 0B91 00F0 movwf I2C1_Process_Receive@c |
6373 |
6374 ;I2C1.c: 523: uint8_t ret = 0; |
6375 0B92 01F1 clrf I2C1_Process_Receive@ret |
6376 0B93 0064 clrwdt ;# |
6377 |
6378 ;I2C1.c: 534: } |
6379 |
6380 ;I2C1.c: 533: break; |
6381 |
6382 ;I2C1.c: 528: case 0x0A: |
6383 |
6384 ;I2C1.c: 527: switch (c) { |
6385 0B94 0870 movf I2C1_Process_Receive@c,w |
6386 |
6387 ; Switch size 1, requested type "space" |
6388 ; Number of cases is 1, Range of values is 10 to 10 |
6389 ; switch strategies available: |
6390 ; Name Instructions Cycles |
6391 ; simple_byte 4 3 (average) |
6392 ; direct_byte 11 9 (fixed) |
6393 ; jumptable 263 9 (fixed) |
6394 ; Chosen strategy is simple_byte |
6395 0B95 3A0A xorlw 10 ; case 10 |
6396 0B96 1903 skipnz |
6397 0B97 2B99 goto i1l2623 |
6398 0B98 2B99 goto i1l2623 |
6399 0B99 i1l2623: |
6400 |
6401 ;I2C1.c: 535: return ret; |
6402 0B99 0871 movf I2C1_Process_Receive@ret,w |
6403 0B9A 0008 return |
6404 0B9B __end_of_I2C1_Process_Receive: |
6405 |
6406 psect text25 |
6407 02DD __ptext25: |
6408 ;; *************** function _I2C1_Interrupt_Master ***************** |
6409 ;; Defined at: |
6410 ;; line 148 in file "I2C1.c" |
6411 ;; Parameters: Size Location Type |
6412 ;; None |
6413 ;; Auto vars: Size Location Type |
6414 ;; tmp 1 3[COMMON] unsigned char |
6415 ;; tmp 1 2[COMMON] unsigned char |
6416 ;; Return value: Size Location Type |
6417 ;; None void |
6418 ;; Registers used: |
6419 ;; wreg, fsr0l, fsr0h, fsr1l, fsr1h, status,2, status,0 |
6420 ;; Tracked objects: |
6421 ;; On entry : 0/0 |
6422 ;; On exit : 0/0 |
6423 ;; Unchanged: 0/0 |
6424 ;; Data sizes: COMMON BANK0 BANK1 BANK2 BANK3 BANK4 BANK5 BANK6 BANK7 BANK8 BANK9 BANK10 BANK1 |
+1 BANK12 |
6425 ;; Params: 0 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
6426 ;; Locals: 2 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
6427 ;; Temps: 2 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
6428 ;; Totals: 4 0 0 0 0 0 0 0 0 0 0 0 |
+0 0 |
6429 ;;Total ram usage: 4 bytes |
6430 ;; Hardware stack levels used: 1 |
6431 ;; This function calls: |
6432 ;; Nothing |
6433 ;; This function is called by: |
6434 ;; _I2C1_Interrupt_Handler |
6435 ;; This function uses a non-reentrant model |
6436 ;; |
6437 |
6438 |
6439 ;psect for function _I2C1_Interrupt_Master |
6440 02DD _I2C1_Interrupt_Master: |
6441 |
6442 ;I2C1.c: 150: if (i2c_data_p->master_status == 0x20) { |
6443 |
6444 ;incstack = 0 |
6445 ; Regs used in _I2C1_Interrupt_Master: [wreg-fsr1h+status,2+status,0] |
6446 02DD 0879 movf _i2c_data_p,w |
6447 02DE 3E4A addlw 74 |
6448 02DF 0086 movwf 6 |
6449 02E0 0187 clrf 7 |
6450 02E1 0801 movf 1,w |
6451 02E2 3A20 xorlw 32 |
6452 02E3 1903 btfsc 3,2 |
6453 02E4 2B4A goto i1l2501 |
6454 02E5 2B5A goto i1l2503 |
6455 02E6 i1l2483: |
6456 ;I2C1.c: 154: case 0x5: |
6457 |
6458 ;I2C1.c: 153: break; |
6459 |
6460 ;I2C1.c: 152: case 0x1: |
6461 |
6462 ;I2C1.c: 151: switch (i2c_data_p->operating_state) { |
6463 |
6464 |
6465 ;I2C1.c: 156: i2c_data_p->operating_state = 0x7; |
6466 02E6 3007 movlw 7 |
6467 02E7 00F0 movwf ??_I2C1_Interrupt_Master |
6468 02E8 0879 movf _i2c_data_p,w |
6469 02E9 3E47 addlw 71 |
6470 02EA 0086 movwf 6 |
6471 02EB 0187 clrf 7 |
6472 02EC 0870 movf ??_I2C1_Interrupt_Master,w |
6473 02ED 0081 movwf 1 |
6474 |
6475 ;I2C1.c: 157: SSP1BUF = (i2c_data_p->master_dest_addr << 1) | 0x0; |
6476 02EE 0879 movf _i2c_data_p,w |
6477 02EF 3E49 addlw 73 |
6478 02F0 0086 movwf 6 |
6479 02F1 0187 clrf 7 |
6480 02F2 3501 lslf 1,w |
6481 02F3 0024 movlb 4 ; select bank4 |
6482 02F4 0091 movwf 17 ;volatile |
6483 |
6484 ;I2C1.c: 158: break; |
6485 02F5 0008 return |
6486 02F6 i1l134: |
6487 ;I2C1.c: 159: case 0x7: |
6488 |
6489 |
6490 ;I2C1.c: 161: if (!SSP1CON2bits.ACKSTAT) { |
6491 02F6 0024 movlb 4 ; select bank4 |
6492 02F7 1B16 btfsc 22,6 ;volatile |
6493 02F8 2B32 goto i1l2495 |
6494 |
6495 ;I2C1.c: 163: if (i2c_data_p->buffer_in_read_ind < i2c_data_p->buffer_in_len) { |
6496 02F9 0879 movf _i2c_data_p,w |
6497 02FA 3E22 addlw 34 |
6498 02FB 0086 movwf 6 |
6499 02FC 0187 clrf 7 |
6500 02FD 0879 movf _i2c_data_p,w |
6501 02FE 3E20 addlw 32 |
6502 02FF 0084 movwf 4 |
6503 0300 0185 clrf 5 |
6504 0301 0800 movf 0,w |
6505 0302 0201 subwf 1,w |
6506 0303 1803 skipnc |
6507 0304 2B1A goto i1l2491 |
6508 |
6509 ;I2C1.c: 164: SSP1BUF = i2c_data_p->buffer_in[i2c_data_p->buffer_in_read_ind]; |
6510 0305 0879 movf _i2c_data_p,w |
6511 0306 3E22 addlw 34 |
6512 0307 0086 movwf 6 |
6513 0308 0187 clrf 7 |
6514 0309 0801 movf 1,w |
6515 030A 0779 addwf _i2c_data_p,w |
6516 030B 00F0 movwf ??_I2C1_Interrupt_Master |
6517 030C 0870 movf ??_I2C1_Interrupt_Master,w |
6518 030D 0086 movwf 6 |
6519 030E 0187 clrf 7 |
6520 030F 0801 movf 1,w |
6521 0310 0091 movwf 17 ;volatile |
6522 |
6523 ;I2C1.c: 165: i2c_data_p->buffer_in_read_ind++; |
6524 0311 3001 movlw 1 |
6525 0312 00F0 movwf ??_I2C1_Interrupt_Master |
6526 0313 0879 movf _i2c_data_p,w |
6527 0314 3E22 addlw 34 |
6528 0315 0086 movwf 6 |
6529 0316 0187 clrf 7 |
6530 0317 0870 movf ??_I2C1_Interrupt_Master,w |
6531 0318 0781 addwf 1,f |
6532 |
6533 ;I2C1.c: 166: } else { |
6534 0319 0008 return |
6535 031A i1l2491: |
6536 |
6537 ;I2C1.c: 168: i2c_data_p->operating_state = 0x1; |
6538 031A 0879 movf _i2c_data_p,w |
6539 031B 3E47 addlw 71 |
6540 031C 0086 movwf 6 |
6541 031D 0187 clrf 7 |
6542 031E 0181 clrf 1 |
6543 031F 0A81 incf 1,f |
6544 |
6545 ;I2C1.c: 169: SSP1CON2bits.PEN = 1; |
6546 0320 1516 bsf 22,2 ;volatile |
6547 |
6548 ;I2C1.c: 170: i2c_data_p->master_status = 0x23; |
6549 0321 3023 movlw 35 |
6550 0322 00F0 movwf ??_I2C1_Interrupt_Master |
6551 0323 0879 movf _i2c_data_p,w |
6552 0324 3E4A addlw 74 |
6553 0325 0086 movwf 6 |
6554 0326 0187 clrf 7 |
6555 0327 0870 movf ??_I2C1_Interrupt_Master,w |
6556 0328 0081 movwf 1 |
6557 |
6558 ;I2C1.c: 171: i2c_data_p->return_status = 0x30; |
6559 0329 3030 movlw 48 |
6560 032A 00F0 movwf ??_I2C1_Interrupt_Master |
6561 032B 0879 movf _i2c_data_p,w |
6562 032C 3E48 addlw 72 |
6563 032D 0086 movwf 6 |
6564 032E 0187 clrf 7 |
6565 032F 0870 movf ??_I2C1_Interrupt_Master,w |
6566 0330 0081 movwf 1 |
6567 |
6568 ;I2C1.c: 172: } |
6569 ;I2C1.c: 173: } else { |
6570 0331 0008 return |
6571 0332 i1l2495: |
6572 |
6573 ;I2C1.c: 175: i2c_data_p->operating_state = 0x1; |
6574 0332 0879 movf _i2c_data_p,w |
6575 0333 3E47 addlw 71 |
6576 0334 0086 movwf 6 |
6577 0335 0187 clrf 7 |
6578 0336 0181 clrf 1 |
6579 0337 0A81 incf 1,f |
6580 |
6581 ;I2C1.c: 176: SSP1CON2bits.PEN = 1; |
6582 0338 1516 bsf 22,2 ;volatile |
6583 |
6584 ;I2C1.c: 177: i2c_data_p->master_status = 0x23; |
6585 0339 3023 movlw 35 |
6586 033A 00F0 movwf ??_I2C1_Interrupt_Master |
6587 033B 0879 movf _i2c_data_p,w |
6588 033C 3E4A addlw 74 |
6589 033D 0086 movwf 6 |
6590 033E 0187 clrf 7 |
6591 033F 0870 movf ??_I2C1_Interrupt_Master,w |
6592 0340 0081 movwf 1 |
6593 |
6594 ;I2C1.c: 178: i2c_data_p->return_status = 0x31; |
6595 0341 3031 movlw 49 |
6596 0342 00F0 movwf ??_I2C1_Interrupt_Master |
6597 0343 0879 movf _i2c_data_p,w |
6598 0344 3E48 addlw 72 |
6599 0345 0086 movwf 6 |
6600 0346 0187 clrf 7 |
6601 0347 0870 movf ??_I2C1_Interrupt_Master,w |
6602 0348 0081 movwf 1 |
6603 |
6604 ;I2C1.c: 181: } |
6605 |
6606 ;I2C1.c: 179: } |
6607 ;I2C1.c: 180: break; |
6608 0349 0008 return |
6609 034A i1l2501: |
6610 034A 0879 movf _i2c_data_p,w |
6611 034B 3E47 addlw 71 |
6612 034C 0086 movwf 6 |
6613 034D 0187 clrf 7 |
6614 034E 0801 movf 1,w |
6615 |
6616 ; Switch size 1, requested type "space" |
6617 ; Number of cases is 3, Range of values is 1 to 7 |
6618 ; switch strategies available: |
6619 ; Name Instructions Cycles |
6620 ; simple_byte 10 6 (average) |
6621 ; direct_byte 23 9 (fixed) |
6622 ; jumptable 263 9 (fixed) |
6623 ; Chosen strategy is simple_byte |
6624 034F 3A01 xorlw 1 ; case 1 |
6625 0350 1903 skipnz |
6626 0351 2D33 goto i1l174 |
6627 0352 3A04 xorlw 4 ; case 5 |
6628 0353 1903 skipnz |
6629 0354 2AE6 goto i1l2483 |
6630 0355 3A02 xorlw 2 ; case 7 |
6631 0356 1903 skipnz |
6632 0357 2AF6 goto i1l134 |
6633 0358 2D33 goto i1l174 |
6634 |
6635 ;I2C1.c: 183: } else if (i2c_data_p->master_status == 0x21) { |
6636 0359 0008 return |
6637 035A i1l2503: |
6638 035A 0879 movf _i2c_data_p,w |
6639 035B 3E4A addlw 74 |
6640 035C 0086 movwf 6 |
6641 035D 0187 clrf 7 |
6642 035E 0801 movf 1,w |
6643 035F 3A21 xorlw 33 |
6644 0360 1903 btfsc 3,2 |
6645 0361 2BFA goto i1l2549 |
6646 0362 2C13 goto i1l2551 |
6647 0363 i1l2507: |
6648 ;I2C1.c: 187: case 0x5: |
6649 |
6650 ;I2C1.c: 186: break; |
6651 |
6652 ;I2C1.c: 185: case 0x1: |
6653 |
6654 ;I2C1.c: 184: switch (i2c_data_p->operating_state) { |
6655 |
6656 |
6657 ;I2C1.c: 189: i2c_data_p->operating_state = 0x8; |
6658 0363 3008 movlw 8 |
6659 0364 00F0 movwf ??_I2C1_Interrupt_Master |
6660 0365 0879 movf _i2c_data_p,w |
6661 0366 3E47 addlw 71 |
6662 0367 0086 movwf 6 |
6663 0368 0187 clrf 7 |
6664 0369 0870 movf ??_I2C1_Interrupt_Master,w |
6665 036A 0081 movwf 1 |
6666 |
6667 ;I2C1.c: 190: uint8_t tmp = (i2c_data_p->master_dest_addr << 1); |
6668 036B 0879 movf _i2c_data_p,w |
6669 036C 3E49 addlw 73 |
6670 036D 0086 movwf 6 |
6671 036E 0187 clrf 7 |
6672 036F 3501 lslf 1,w |
6673 0370 00F0 movwf ??_I2C1_Interrupt_Master |
6674 0371 0870 movf ??_I2C1_Interrupt_Master,w |
6675 0372 00F2 movwf I2C1_Interrupt_Master@tmp |
6676 |
6677 ;I2C1.c: 191: tmp |= 0x01; |
6678 0373 1472 bsf I2C1_Interrupt_Master@tmp,0 |
6679 |
6680 ;I2C1.c: 192: SSP1BUF = tmp; |
6681 0374 0872 movf I2C1_Interrupt_Master@tmp,w |
6682 0375 0024 movlb 4 ; select bank4 |
6683 0376 0091 movwf 17 ;volatile |
6684 |
6685 ;I2C1.c: 193: break; |
6686 0377 0008 return |
6687 0378 i1l145: |
6688 ;I2C1.c: 194: case 0x8: |
6689 |
6690 |
6691 ;I2C1.c: 196: if (!SSP1CON2bits.ACKSTAT) { |
6692 0378 0024 movlb 4 ; select bank4 |
6693 0379 1B16 btfsc 22,6 ;volatile |
6694 037A 2B85 goto i1l2519 |
6695 |
6696 ;I2C1.c: 198: i2c_data_p->operating_state = 0x3; |
6697 037B 3003 movlw 3 |
6698 037C 00F0 movwf ??_I2C1_Interrupt_Master |
6699 037D 0879 movf _i2c_data_p,w |
6700 037E 3E47 addlw 71 |
6701 037F 0086 movwf 6 |
6702 0380 0187 clrf 7 |
6703 0381 0870 movf ??_I2C1_Interrupt_Master,w |
6704 0382 0081 movwf 1 |
6705 |
6706 ;I2C1.c: 199: SSP1CON2bits.RCEN = 1; |
6707 0383 1596 bsf 22,3 ;volatile |
6708 |
6709 ;I2C1.c: 200: } else { |
6710 0384 0008 return |
6711 0385 i1l2519: |
6712 |
6713 ;I2C1.c: 202: i2c_data_p->operating_state = 0x1; |
6714 0385 0879 movf _i2c_data_p,w |
6715 0386 3E47 addlw 71 |
6716 0387 0086 movwf 6 |
6717 0388 0187 clrf 7 |
6718 0389 0181 clrf 1 |
6719 038A 0A81 incf 1,f |
6720 |
6721 ;I2C1.c: 203: SSP1CON2bits.PEN = 1; |
6722 038B 1516 bsf 22,2 ;volatile |
6723 |
6724 ;I2C1.c: 204: i2c_data_p->master_status = 0x23; |
6725 038C 3023 movlw 35 |
6726 038D 00F0 movwf ??_I2C1_Interrupt_Master |
6727 038E 0879 movf _i2c_data_p,w |
6728 038F 3E4A addlw 74 |
6729 0390 0086 movwf 6 |
6730 0391 0187 clrf 7 |
6731 0392 0870 movf ??_I2C1_Interrupt_Master,w |
6732 0393 0081 movwf 1 |
6733 |
6734 ;I2C1.c: 205: i2c_data_p->return_status = 0x33; |
6735 0394 3033 movlw 51 |
6736 0395 00F0 movwf ??_I2C1_Interrupt_Master |
6737 0396 0879 movf _i2c_data_p,w |
6738 0397 3E48 addlw 72 |
6739 0398 0086 movwf 6 |
6740 0399 0187 clrf 7 |
6741 039A 0870 movf ??_I2C1_Interrupt_Master,w |
6742 039B 0081 movwf 1 |
6743 |
6744 ;I2C1.c: 206: } |
6745 ;I2C1.c: 207: break; |
6746 039C 0008 return |
6747 039D i1l2523: |
6748 ;I2C1.c: 208: case 0x3: |
6749 |
6750 |
6751 ;I2C1.c: 211: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = SSP1BUF; |
6752 039D 0024 movlb 4 ; select bank4 |
6753 039E 0811 movf 17,w ;volatile |
6754 039F 00F0 movwf ??_I2C1_Interrupt_Master |
6755 03A0 0879 movf _i2c_data_p,w |
6756 03A1 3E23 addlw 35 |
6757 03A2 0086 movwf 6 |
6758 03A3 0187 clrf 7 |
6759 03A4 0801 movf 1,w |
6760 03A5 0779 addwf _i2c_data_p,w |
6761 03A6 00F1 movwf ??_I2C1_Interrupt_Master+1 |
6762 03A7 0871 movf ??_I2C1_Interrupt_Master+1,w |
6763 03A8 0086 movwf 6 |
6764 03A9 0187 clrf 7 |
6765 03AA 0870 movf ??_I2C1_Interrupt_Master,w |
6766 03AB 0081 movwf 1 |
6767 |
6768 ;I2C1.c: 212: i2c_data_p->buffer_in_write_ind++; |
6769 03AC 3001 movlw 1 |
6770 03AD 00F0 movwf ??_I2C1_Interrupt_Master |
6771 03AE 0879 movf _i2c_data_p,w |
6772 03AF 3E23 addlw 35 |
6773 03B0 0086 movwf 6 |
6774 03B1 0187 clrf 7 |
6775 03B2 0870 movf ??_I2C1_Interrupt_Master,w |
6776 03B3 0781 addwf 1,f |
6777 |
6778 ;I2C1.c: 213: if (i2c_data_p->buffer_in_write_ind < i2c_data_p->buffer_in_len) { |
6779 03B4 0879 movf _i2c_data_p,w |
6780 03B5 3E23 addlw 35 |
6781 03B6 0086 movwf 6 |
6782 03B7 0187 clrf 7 |
6783 03B8 0879 movf _i2c_data_p,w |
6784 03B9 3E20 addlw 32 |
6785 03BA 0084 movwf 4 |
6786 03BB 0185 clrf 5 |
6787 03BC 0800 movf 0,w |
6788 03BD 0201 subwf 1,w |
6789 03BE 1803 skipnc |
6790 03BF 2BCB goto i1l2533 |
6791 |
6792 ;I2C1.c: 215: i2c_data_p->operating_state = 0xA; |
6793 03C0 300A movlw 10 |
6794 03C1 00F0 movwf ??_I2C1_Interrupt_Master |
6795 03C2 0879 movf _i2c_data_p,w |
6796 03C3 3E47 addlw 71 |
6797 03C4 0086 movwf 6 |
6798 03C5 0187 clrf 7 |
6799 03C6 0870 movf ??_I2C1_Interrupt_Master,w |
6800 03C7 0081 movwf 1 |
6801 |
6802 ;I2C1.c: 216: SSP1CON2bits.ACKDT = 0; |
6803 03C8 1296 bcf 22,5 ;volatile |
6804 |
6805 ;I2C1.c: 217: SSP1CON2bits.ACKEN = 1; |
6806 03C9 1616 bsf 22,4 ;volatile |
6807 |
6808 ;I2C1.c: 218: } else { |
6809 03CA 0008 return |
6810 03CB i1l2533: |
6811 |
6812 ;I2C1.c: 220: i2c_data_p->operating_state = 0xB; |
6813 03CB 300B movlw 11 |
6814 03CC 00F0 movwf ??_I2C1_Interrupt_Master |
6815 03CD 0879 movf _i2c_data_p,w |
6816 03CE 3E47 addlw 71 |
6817 03CF 0086 movwf 6 |
6818 03D0 0187 clrf 7 |
6819 03D1 0870 movf ??_I2C1_Interrupt_Master,w |
6820 03D2 0081 movwf 1 |
6821 |
6822 ;I2C1.c: 221: SSP1CON2bits.ACKDT = 1; |
6823 03D3 1696 bsf 22,5 ;volatile |
6824 |
6825 ;I2C1.c: 222: SSP1CON2bits.ACKEN = 1; |
6826 03D4 1616 bsf 22,4 ;volatile |
6827 |
6828 ;I2C1.c: 223: } |
6829 ;I2C1.c: 224: break; |
6830 03D5 0008 return |
6831 03D6 i1l2539: |
6832 ;I2C1.c: 225: case 0xA: |
6833 |
6834 |
6835 ;I2C1.c: 227: i2c_data_p->operating_state = 0x3; |
6836 03D6 3003 movlw 3 |
6837 03D7 00F0 movwf ??_I2C1_Interrupt_Master |
6838 03D8 0879 movf _i2c_data_p,w |
6839 03D9 3E47 addlw 71 |
6840 03DA 0086 movwf 6 |
6841 03DB 0187 clrf 7 |
6842 03DC 0870 movf ??_I2C1_Interrupt_Master,w |
6843 03DD 0081 movwf 1 |
6844 |
6845 ;I2C1.c: 228: SSP1CON2bits.RCEN = 1; |
6846 03DE 0024 movlb 4 ; select bank4 |
6847 03DF 1596 bsf 22,3 ;volatile |
6848 |
6849 ;I2C1.c: 229: break; |
6850 03E0 0008 return |
6851 03E1 i1l2543: |
6852 ;I2C1.c: 230: case 0xB: |
6853 |
6854 |
6855 ;I2C1.c: 232: i2c_data_p->operating_state = 0x1; |
6856 03E1 0879 movf _i2c_data_p,w |
6857 03E2 3E47 addlw 71 |
6858 03E3 0086 movwf 6 |
6859 03E4 0187 clrf 7 |
6860 03E5 0181 clrf 1 |
6861 03E6 0A81 incf 1,f |
6862 |
6863 ;I2C1.c: 233: SSP1CON2bits.PEN = 1; |
6864 03E7 0024 movlb 4 ; select bank4 |
6865 03E8 1516 bsf 22,2 ;volatile |
6866 |
6867 ;I2C1.c: 234: i2c_data_p->master_status = 0x23; |
6868 03E9 3023 movlw 35 |
6869 03EA 00F0 movwf ??_I2C1_Interrupt_Master |
6870 03EB 0879 movf _i2c_data_p,w |
6871 03EC 3E4A addlw 74 |
6872 03ED 0086 movwf 6 |
6873 03EE 0187 clrf 7 |
6874 03EF 0870 movf ??_I2C1_Interrupt_Master,w |
6875 03F0 0081 movwf 1 |
6876 |
6877 ;I2C1.c: 235: i2c_data_p->return_status = 0x32; |
6878 03F1 3032 movlw 50 |
6879 03F2 00F0 movwf ??_I2C1_Interrupt_Master |
6880 03F3 0879 movf _i2c_data_p,w |
6881 03F4 3E48 addlw 72 |
6882 03F5 0086 movwf 6 |
6883 03F6 0187 clrf 7 |
6884 03F7 0870 movf ??_I2C1_Interrupt_Master,w |
6885 03F8 0081 movwf 1 |
6886 |
6887 ;I2C1.c: 237: } |
6888 |
6889 ;I2C1.c: 236: break; |
6890 03F9 0008 return |
6891 03FA i1l2549: |
6892 03FA 0879 movf _i2c_data_p,w |
6893 03FB 3E47 addlw 71 |
6894 03FC 0086 movwf 6 |
6895 03FD 0187 clrf 7 |
6896 03FE 0801 movf 1,w |
6897 |
6898 ; Switch size 1, requested type "space" |
6899 ; Number of cases is 6, Range of values is 1 to 11 |
6900 ; switch strategies available: |
6901 ; Name Instructions Cycles |
6902 ; simple_byte 19 10 (average) |
6903 ; direct_byte 31 9 (fixed) |
6904 ; jumptable 263 9 (fixed) |
6905 ; Chosen strategy is simple_byte |
6906 03FF 3A01 xorlw 1 ; case 1 |
6907 0400 1903 skipnz |
6908 0401 2D33 goto i1l174 |
6909 0402 3A02 xorlw 2 ; case 3 |
6910 0403 1903 skipnz |
6911 0404 2B9D goto i1l2523 |
6912 0405 3A06 xorlw 6 ; case 5 |
6913 0406 1903 skipnz |
6914 0407 2B63 goto i1l2507 |
6915 0408 3A0D xorlw 13 ; case 8 |
6916 0409 1903 skipnz |
6917 040A 2B78 goto i1l145 |
6918 040B 3A02 xorlw 2 ; case 10 |
6919 040C 1903 skipnz |
6920 040D 2BD6 goto i1l2539 |
6921 040E 3A01 xorlw 1 ; case 11 |
6922 040F 1903 skipnz |
6923 0410 2BE1 goto i1l2543 |
6924 0411 2D33 goto i1l174 |
6925 |
6926 ;I2C1.c: 238: } else if (i2c_data_p->master_status == 0x22) { |
6927 0412 0008 return |
6928 0413 i1l2551: |
6929 0413 0879 movf _i2c_data_p,w |
6930 0414 3E4A addlw 74 |
6931 0415 0086 movwf 6 |
6932 0416 0187 clrf 7 |
6933 0417 0801 movf 1,w |
6934 0418 3A22 xorlw 34 |
6935 0419 1D03 skipz |
6936 041A 0008 return |
6937 041B 2D11 goto i1l2615 |
6938 041C i1l2555: |
6939 ;I2C1.c: 242: case 0x5: |
6940 |
6941 ;I2C1.c: 241: break; |
6942 |
6943 ;I2C1.c: 240: case 0x1: |
6944 |
6945 ;I2C1.c: 239: switch (i2c_data_p->operating_state) { |
6946 |
6947 |
6948 ;I2C1.c: 244: i2c_data_p->operating_state = 0x7; |
6949 041C 3007 movlw 7 |
6950 041D 00F0 movwf ??_I2C1_Interrupt_Master |
6951 041E 0879 movf _i2c_data_p,w |
6952 041F 3E47 addlw 71 |
6953 0420 0086 movwf 6 |
6954 0421 0187 clrf 7 |
6955 0422 0870 movf ??_I2C1_Interrupt_Master,w |
6956 0423 0081 movwf 1 |
6957 |
6958 ;I2C1.c: 245: SSP1BUF = (i2c_data_p->master_dest_addr << 1) | 0x0; |
6959 0424 0879 movf _i2c_data_p,w |
6960 0425 3E49 addlw 73 |
6961 0426 0086 movwf 6 |
6962 0427 0187 clrf 7 |
6963 0428 3501 lslf 1,w |
6964 0429 0024 movlb 4 ; select bank4 |
6965 042A 0091 movwf 17 ;volatile |
6966 |
6967 ;I2C1.c: 246: break; |
6968 042B 0008 return |
6969 042C i1l159: |
6970 ;I2C1.c: 247: case 0x7: |
6971 |
6972 |
6973 ;I2C1.c: 249: if (!SSP1CON2bits.ACKSTAT) { |
6974 042C 0024 movlb 4 ; select bank4 |
6975 042D 1B16 btfsc 22,6 ;volatile |
6976 042E 2C3D goto i1l2561 |
6977 |
6978 ;I2C1.c: 251: SSP1BUF = i2c_data_p->buffer_in[0]; |
6979 042F 0879 movf _i2c_data_p,w |
6980 0430 0086 movwf 6 |
6981 0431 0187 clrf 7 |
6982 0432 0801 movf 1,w |
6983 0433 0091 movwf 17 ;volatile |
6984 |
6985 ;I2C1.c: 252: i2c_data_p->operating_state = 0x9; |
6986 0434 3009 movlw 9 |
6987 0435 00F0 movwf ??_I2C1_Interrupt_Master |
6988 0436 0879 movf _i2c_data_p,w |
6989 0437 3E47 addlw 71 |
6990 0438 0086 movwf 6 |
6991 0439 0187 clrf 7 |
6992 043A 0870 movf ??_I2C1_Interrupt_Master,w |
6993 043B 0081 movwf 1 |
6994 |
6995 ;I2C1.c: 253: } else { |
6996 043C 0008 return |
6997 043D i1l2561: |
6998 |
6999 ;I2C1.c: 255: i2c_data_p->operating_state = 0x1; |
7000 043D 0879 movf _i2c_data_p,w |
7001 043E 3E47 addlw 71 |
7002 043F 0086 movwf 6 |
7003 0440 0187 clrf 7 |
7004 0441 0181 clrf 1 |
7005 0442 0A81 incf 1,f |
7006 |
7007 ;I2C1.c: 256: SSP1CON2bits.PEN = 1; |
7008 0443 1516 bsf 22,2 ;volatile |
7009 |
7010 ;I2C1.c: 257: i2c_data_p->master_status = 0x23; |
7011 0444 3023 movlw 35 |
7012 0445 00F0 movwf ??_I2C1_Interrupt_Master |
7013 0446 0879 movf _i2c_data_p,w |
7014 0447 3E4A addlw 74 |
7015 0448 0086 movwf 6 |
7016 0449 0187 clrf 7 |
7017 044A 0870 movf ??_I2C1_Interrupt_Master,w |
7018 044B 0081 movwf 1 |
7019 |
7020 ;I2C1.c: 258: i2c_data_p->return_status = 0x31; |
7021 044C 3031 movlw 49 |
7022 044D 00F0 movwf ??_I2C1_Interrupt_Master |
7023 044E 0879 movf _i2c_data_p,w |
7024 044F 3E48 addlw 72 |
7025 0450 0086 movwf 6 |
7026 0451 0187 clrf 7 |
7027 0452 0870 movf ??_I2C1_Interrupt_Master,w |
7028 0453 0081 movwf 1 |
7029 |
7030 ;I2C1.c: 259: } |
7031 ;I2C1.c: 260: break; |
7032 0454 0008 return |
7033 0455 i1l162: |
7034 ;I2C1.c: 261: case 0x9: |
7035 |
7036 |
7037 ;I2C1.c: 262: if (!SSP1CON2bits.ACKSTAT) { |
7038 0455 0024 movlb 4 ; select bank4 |
7039 0456 1B16 btfsc 22,6 ;volatile |
7040 0457 2C62 goto i1l2569 |
7041 |
7042 ;I2C1.c: 263: SSP1CON2bits.RSEN = 1; |
7043 0458 1496 bsf 22,1 ;volatile |
7044 |
7045 ;I2C1.c: 264: i2c_data_p->operating_state = 0x6; |
7046 0459 3006 movlw 6 |
7047 045A 00F0 movwf ??_I2C1_Interrupt_Master |
7048 045B 0879 movf _i2c_data_p,w |
7049 045C 3E47 addlw 71 |
7050 045D 0086 movwf 6 |
7051 045E 0187 clrf 7 |
7052 045F 0870 movf ??_I2C1_Interrupt_Master,w |
7053 0460 0081 movwf 1 |
7054 |
7055 ;I2C1.c: 265: } else { |
7056 0461 0008 return |
7057 0462 i1l2569: |
7058 |
7059 ;I2C1.c: 267: i2c_data_p->operating_state = 0x1; |
7060 0462 0879 movf _i2c_data_p,w |
7061 0463 3E47 addlw 71 |
7062 0464 0086 movwf 6 |
7063 0465 0187 clrf 7 |
7064 0466 0181 clrf 1 |
7065 0467 0A81 incf 1,f |
7066 |
7067 ;I2C1.c: 268: SSP1CON2bits.PEN = 1; |
7068 0468 1516 bsf 22,2 ;volatile |
7069 |
7070 ;I2C1.c: 269: i2c_data_p->master_status = 0x23; |
7071 0469 3023 movlw 35 |
7072 046A 00F0 movwf ??_I2C1_Interrupt_Master |
7073 046B 0879 movf _i2c_data_p,w |
7074 046C 3E4A addlw 74 |
7075 046D 0086 movwf 6 |
7076 046E 0187 clrf 7 |
7077 046F 0870 movf ??_I2C1_Interrupt_Master,w |
7078 0470 0081 movwf 1 |
7079 |
7080 ;I2C1.c: 270: i2c_data_p->return_status = 0x31; |
7081 0471 3031 movlw 49 |
7082 0472 00F0 movwf ??_I2C1_Interrupt_Master |
7083 0473 0879 movf _i2c_data_p,w |
7084 0474 3E48 addlw 72 |
7085 0475 0086 movwf 6 |
7086 0476 0187 clrf 7 |
7087 0477 0870 movf ??_I2C1_Interrupt_Master,w |
7088 0478 0081 movwf 1 |
7089 |
7090 ;I2C1.c: 271: } |
7091 ;I2C1.c: 272: break; |
7092 0479 0008 return |
7093 047A i1l2573: |
7094 ;I2C1.c: 273: case 0x6: |
7095 |
7096 |
7097 ;I2C1.c: 275: i2c_data_p->operating_state = 0x8; |
7098 047A 3008 movlw 8 |
7099 047B 00F0 movwf ??_I2C1_Interrupt_Master |
7100 047C 0879 movf _i2c_data_p,w |
7101 047D 3E47 addlw 71 |
7102 047E 0086 movwf 6 |
7103 047F 0187 clrf 7 |
7104 0480 0870 movf ??_I2C1_Interrupt_Master,w |
7105 0481 0081 movwf 1 |
7106 |
7107 ;I2C1.c: 276: uint8_t tmp = (i2c_data_p->master_dest_addr << 1); |
7108 0482 0879 movf _i2c_data_p,w |
7109 0483 3E49 addlw 73 |
7110 0484 0086 movwf 6 |
7111 0485 0187 clrf 7 |
7112 0486 3501 lslf 1,w |
7113 0487 00F0 movwf ??_I2C1_Interrupt_Master |
7114 0488 0870 movf ??_I2C1_Interrupt_Master,w |
7115 0489 00F3 movwf I2C1_Interrupt_Master@tmp_611 |
7116 |
7117 ;I2C1.c: 277: tmp |= 0x01; |
7118 048A 1473 bsf I2C1_Interrupt_Master@tmp_611,0 |
7119 |
7120 ;I2C1.c: 278: SSP1BUF = tmp; |
7121 048B 0873 movf I2C1_Interrupt_Master@tmp_611,w |
7122 048C 0024 movlb 4 ; select bank4 |
7123 048D 0091 movwf 17 ;volatile |
7124 |
7125 ;I2C1.c: 279: break; |
7126 048E 0008 return |
7127 048F i1l166: |
7128 ;I2C1.c: 280: case 0x8: |
7129 |
7130 |
7131 ;I2C1.c: 282: if (!SSP1CON2bits.ACKSTAT) { |
7132 048F 0024 movlb 4 ; select bank4 |
7133 0490 1B16 btfsc 22,6 ;volatile |
7134 0491 2C9C goto i1l2585 |
7135 |
7136 ;I2C1.c: 284: i2c_data_p->operating_state = 0x3; |
7137 0492 3003 movlw 3 |
7138 0493 00F0 movwf ??_I2C1_Interrupt_Master |
7139 0494 0879 movf _i2c_data_p,w |
7140 0495 3E47 addlw 71 |
7141 0496 0086 movwf 6 |
7142 0497 0187 clrf 7 |
7143 0498 0870 movf ??_I2C1_Interrupt_Master,w |
7144 0499 0081 movwf 1 |
7145 |
7146 ;I2C1.c: 285: SSP1CON2bits.RCEN = 1; |
7147 049A 1596 bsf 22,3 ;volatile |
7148 |
7149 ;I2C1.c: 286: } else { |
7150 049B 0008 return |
7151 049C i1l2585: |
7152 |
7153 ;I2C1.c: 288: i2c_data_p->operating_state = 0x1; |
7154 049C 0879 movf _i2c_data_p,w |
7155 049D 3E47 addlw 71 |
7156 049E 0086 movwf 6 |
7157 049F 0187 clrf 7 |
7158 04A0 0181 clrf 1 |
7159 04A1 0A81 incf 1,f |
7160 |
7161 ;I2C1.c: 289: SSP1CON2bits.PEN = 1; |
7162 04A2 1516 bsf 22,2 ;volatile |
7163 |
7164 ;I2C1.c: 290: i2c_data_p->master_status = 0x23; |
7165 04A3 3023 movlw 35 |
7166 04A4 00F0 movwf ??_I2C1_Interrupt_Master |
7167 04A5 0879 movf _i2c_data_p,w |
7168 04A6 3E4A addlw 74 |
7169 04A7 0086 movwf 6 |
7170 04A8 0187 clrf 7 |
7171 04A9 0870 movf ??_I2C1_Interrupt_Master,w |
7172 04AA 0081 movwf 1 |
7173 |
7174 ;I2C1.c: 291: i2c_data_p->return_status = 0x33; |
7175 04AB 3033 movlw 51 |
7176 04AC 00F0 movwf ??_I2C1_Interrupt_Master |
7177 04AD 0879 movf _i2c_data_p,w |
7178 04AE 3E48 addlw 72 |
7179 04AF 0086 movwf 6 |
7180 04B0 0187 clrf 7 |
7181 04B1 0870 movf ??_I2C1_Interrupt_Master,w |
7182 04B2 0081 movwf 1 |
7183 |
7184 ;I2C1.c: 292: } |
7185 ;I2C1.c: 293: break; |
7186 04B3 0008 return |
7187 04B4 i1l2589: |
7188 ;I2C1.c: 294: case 0x3: |
7189 |
7190 |
7191 ;I2C1.c: 297: i2c_data_p->buffer_in[i2c_data_p->buffer_in_write_ind] = SSP1BUF; |
7192 04B4 0024 movlb 4 ; select bank4 |
7193 04B5 0811 movf 17,w ;volatile |
7194 04B6 00F0 movwf ??_I2C1_Interrupt_Master |
7195 04B7 0879 movf _i2c_data_p,w |
7196 04B8 3E23 addlw 35 |
7197 04B9 0086 movwf 6 |
7198 04BA 0187 clrf 7 |
7199 04BB 0801 movf 1,w |
7200 04BC 0779 addwf _i2c_data_p,w |
7201 04BD 00F1 movwf ??_I2C1_Interrupt_Master+1 |
7202 04BE 0871 movf ??_I2C1_Interrupt_Master+1,w |
7203 04BF 0086 movwf 6 |
7204 04C0 0187 clrf 7 |
7205 04C1 0870 movf ??_I2C1_Interrupt_Master,w |
7206 04C2 0081 movwf 1 |
7207 |
7208 ;I2C1.c: 298: i2c_data_p->buffer_in_write_ind++; |
7209 04C3 3001 movlw 1 |
7210 04C4 00F0 movwf ??_I2C1_Interrupt_Master |
7211 04C5 0879 movf _i2c_data_p,w |
7212 04C6 3E23 addlw 35 |
7213 04C7 0086 movwf 6 |
7214 04C8 0187 clrf 7 |
7215 04C9 0870 movf ??_I2C1_Interrupt_Master,w |
7216 04CA 0781 addwf 1,f |
7217 |
7218 ;I2C1.c: 299: if (i2c_data_p->buffer_in_write_ind < i2c_data_p->buffer_in_len) { |
7219 04CB 0879 movf _i2c_data_p,w |
7220 04CC 3E23 addlw 35 |
7221 04CD 0086 movwf 6 |
7222 04CE 0187 clrf 7 |
7223 04CF 0879 movf _i2c_data_p,w |
7224 04D0 3E20 addlw 32 |
7225 04D1 0084 movwf 4 |
7226 04D2 0185 clrf 5 |
7227 04D3 0800 movf 0,w |
7228 04D4 0201 subwf 1,w |
7229 04D5 1803 skipnc |
7230 04D6 2CE2 goto i1l2599 |
7231 |
7232 ;I2C1.c: 301: i2c_data_p->operating_state = 0xA; |
7233 04D7 300A movlw 10 |
7234 04D8 00F0 movwf ??_I2C1_Interrupt_Master |
7235 04D9 0879 movf _i2c_data_p,w |
7236 04DA 3E47 addlw 71 |
7237 04DB 0086 movwf 6 |
7238 04DC 0187 clrf 7 |
7239 04DD 0870 movf ??_I2C1_Interrupt_Master,w |
7240 04DE 0081 movwf 1 |
7241 |
7242 ;I2C1.c: 302: SSP1CON2bits.ACKDT = 0; |
7243 04DF 1296 bcf 22,5 ;volatile |
7244 |
7245 ;I2C1.c: 303: SSP1CON2bits.ACKEN = 1; |
7246 04E0 1616 bsf 22,4 ;volatile |
7247 |
7248 ;I2C1.c: 304: } else { |
7249 04E1 0008 return |
7250 04E2 i1l2599: |
7251 |
7252 ;I2C1.c: 306: i2c_data_p->operating_state = 0xB; |
7253 04E2 300B movlw 11 |
7254 04E3 00F0 movwf ??_I2C1_Interrupt_Master |
7255 04E4 0879 movf _i2c_data_p,w |
7256 04E5 3E47 addlw 71 |
7257 04E6 0086 movwf 6 |
7258 04E7 0187 clrf 7 |
7259 04E8 0870 movf ??_I2C1_Interrupt_Master,w |
7260 04E9 0081 movwf 1 |
7261 |
7262 ;I2C1.c: 307: SSP1CON2bits.ACKDT = 1; |
7263 04EA 1696 bsf 22,5 ;volatile |
7264 |
7265 ;I2C1.c: 308: SSP1CON2bits.ACKEN = 1; |
7266 04EB 1616 bsf 22,4 ;volatile |
7267 |
7268 ;I2C1.c: 309: } |
7269 ;I2C1.c: 310: break; |
7270 04EC 0008 return |
7271 04ED i1l2605: |
7272 ;I2C1.c: 311: case 0xA: |
7273 |
7274 |
7275 ;I2C1.c: 313: i2c_data_p->operating_state = 0x3; |
7276 04ED 3003 movlw 3 |
7277 04EE 00F0 movwf ??_I2C1_Interrupt_Master |
7278 04EF 0879 movf _i2c_data_p,w |
7279 04F0 3E47 addlw 71 |
7280 04F1 0086 movwf 6 |
7281 04F2 0187 clrf 7 |
7282 04F3 0870 movf ??_I2C1_Interrupt_Master,w |
7283 04F4 0081 movwf 1 |
7284 |
7285 ;I2C1.c: 314: SSP1CON2bits.RCEN = 1; |
7286 04F5 0024 movlb 4 ; select bank4 |
7287 04F6 1596 bsf 22,3 ;volatile |
7288 |
7289 ;I2C1.c: 315: break; |
7290 04F7 0008 return |
7291 04F8 i1l2609: |
7292 ;I2C1.c: 316: case 0xB: |
7293 |
7294 |
7295 ;I2C1.c: 318: i2c_data_p->operating_state = 0x1; |
7296 04F8 0879 movf _i2c_data_p,w |
7297 04F9 3E47 addlw 71 |
7298 04FA 0086 movwf 6 |
7299 04FB 0187 clrf 7 |
7300 04FC 0181 clrf 1 |
7301 04FD 0A81 incf 1,f |
7302 |
7303 ;I2C1.c: 319: SSP1CON2bits.PEN = 1; |
7304 04FE 0024 movlb 4 ; select bank4 |
7305 04FF 1516 bsf 22,2 ;volatile |
7306 |
7307 ;I2C1.c: 320: i2c_data_p->master_status = 0x23; |
7308 0500 3023 movlw 35 |
7309 0501 00F0 movwf ??_I2C1_Interrupt_Master |
7310 0502 0879 movf _i2c_data_p,w |
7311 0503 3E4A addlw 74 |
7312 0504 0086 movwf 6 |
7313 0505 0187 clrf 7 |
7314 0506 0870 movf ??_I2C1_Interrupt_Master,w |
7315 0507 0081 movwf 1 |
7316 |
7317 ;I2C1.c: 321: i2c_data_p->return_status = 0x32; |
7318 0508 3032 movlw 50 |
7319 0509 00F0 movwf ??_I2C1_Interrupt_Master |
7320 050A 0879 movf _i2c_data_p,w |
7321 050B 3E48 addlw 72 |
7322 050C 0086 movwf 6 |
7323 050D 0187 clrf 7 |
7324 050E 0870 movf ??_I2C1_Interrupt_Master,w |
7325 050F 0081 movwf 1 |
7326 |
7327 ;I2C1.c: 323: } |
7328 |
7329 ;I2C1.c: 322: break; |
7330 0510 0008 return |
7331 0511 i1l2615: |
7332 0511 0879 movf _i2c_data_p,w |
7333 0512 3E47 addlw 71 |
7334 0513 0086 movwf 6 |
7335 0514 0187 clrf 7 |
7336 0515 0801 movf 1,w |
7337 |
7338 ; Switch size 1, requested type "space" |
7339 ; Number of cases is 9, Range of values is 1 to 11 |
7340 ; switch strategies available: |
7341 ; Name Instructions Cycles |
7342 ; simple_byte 28 15 (average) |
7343 ; direct_byte 31 9 (fixed) |
7344 ; jumptable 263 9 (fixed) |
7345 ; Chosen strategy is simple_byte |
7346 0516 3A01 xorlw 1 ; case 1 |
7347 0517 1903 skipnz |
7348 0518 2D33 goto i1l174 |
7349 0519 3A02 xorlw 2 ; case 3 |
7350 051A 1903 skipnz |
7351 051B 2CB4 goto i1l2589 |
7352 051C 3A06 xorlw 6 ; case 5 |
7353 051D 1903 skipnz |
7354 051E 2C1C goto i1l2555 |
7355 051F 3A03 xorlw 3 ; case 6 |
7356 0520 1903 skipnz |
7357 0521 2C7A goto i1l2573 |
7358 0522 3A01 xorlw 1 ; case 7 |
7359 0523 1903 skipnz |
7360 0524 2C2C goto i1l159 |
7361 0525 3A0F xorlw 15 ; case 8 |
7362 0526 1903 skipnz |
7363 0527 2C8F goto i1l166 |
7364 0528 3A01 xorlw 1 ; case 9 |
7365 0529 1903 skipnz |
7366 052A 2C55 goto i1l162 |
7367 052B 3A03 xorlw 3 ; case 10 |
7368 052C 1903 skipnz |
7369 052D 2CED goto i1l2605 |
7370 052E 3A01 xorlw 1 ; case 11 |
7371 052F 1903 skipnz |
7372 0530 2CF8 goto i1l2609 |
7373 0531 2D33 goto i1l174 |
7374 0532 0008 return |
7375 0533 i1l174: |
7376 0533 0008 return |
7377 0534 __end_of_I2C1_Interrupt_Master: |
7378 007E btemp set 126 ;btemp |
7379 007E wtemp0 set 126 |
|
|
Data Sizes: |
Strings 0 |
Constant 0 |
Data 18 |
BSS 0 |
Persistent 2 |
Stack 0 |
|
Auto Spaces: |
Space Size Autos Used |
COMMON 14 9 10 |
BANK0 80 55 74 |
BANK1 80 77 77 |
BANK2 80 77 77 |
BANK3 80 0 0 |
BANK4 80 0 0 |
BANK5 80 0 0 |
BANK6 80 0 0 |
BANK7 80 0 0 |
BANK8 80 0 0 |
BANK9 80 0 0 |
BANK10 80 0 0 |
BANK11 80 0 0 |
BANK12 48 0 0 |
|
Pointer List with Targets: |
|
TLC59116_Write_All@values PTR unsigned char size(1) Largest target is 16 |
-> main@leds(BANK0[16]), |
|
I2C2_Read_Buffer@buffer PTR unsigned char size(1) Largest target is 2 |
-> MCP23009_Query@buffer(BANK0[2]), |
|
I2C2_Master_Send@msg PTR unsigned char size(1) Largest target is 25 |
-> MCP23009_Query@buffer(BANK0[2]), MCP23009_Init@buffer(BANK0[8]), TLC59116_Write_BC@buffer(COMMON[2]), TLC59116_Write_All@buffer(BANK0[17]), |
-> TLC59116_Write@buffer(COMMON[2]), TLC59116_Init@buffer(BANK0[25]), I2C2_Master_Restart@c(COMMON[1]), |
|
I2C2_Init@data PTR struct . size(1) Largest target is 77 |
-> main@i2c2_data(BANK2[77]), |
|
I2C2@i2c_data_p PTR struct . size(1) Largest target is 77 |
-> NULL(NULL[0]), main@i2c2_data(BANK2[77]), |
|
I2C1_Init@data PTR struct . size(1) Largest target is 77 |
-> main@i2c1_data(BANK1[77]), |
|
i2c_data_p PTR struct . size(1) Largest target is 77 |
-> NULL(NULL[0]), main@i2c1_data(BANK1[77]), |
|
|
Critical Paths under _main in COMMON |
|
None. |
|
Critical Paths under _InterruptHandler in COMMON |
|
_I2C2_Interrupt_Handler->_I2C2_Interrupt_Slave |
_I2C2_Interrupt_Slave->_I2C2_Process_Receive |
_I2C1_Interrupt_Handler->_I2C1_Interrupt_Slave |
_I2C1_Interrupt_Slave->_I2C1_Process_Receive |
|
Critical Paths under _main in BANK0 |
|
_main->_TLC59116_Init |
_MCP23009_Query->_I2C2_Master_Send |
_MCP23009_Init->_I2C2_Master_Send |
_TLC59116_Write_All->_I2C2_Master_Send |
_TLC59116_Init->_I2C2_Master_Send |
|
Critical Paths under _InterruptHandler in BANK0 |
|
None. |
|
Critical Paths under _main in BANK1 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK1 |
|
None. |
|
Critical Paths under _main in BANK2 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK2 |
|
None. |
|
Critical Paths under _main in BANK3 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK3 |
|
None. |
|
Critical Paths under _main in BANK4 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK4 |
|
None. |
|
Critical Paths under _main in BANK5 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK5 |
|
None. |
|
Critical Paths under _main in BANK6 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK6 |
|
None. |
|
Critical Paths under _main in BANK7 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK7 |
|
None. |
|
Critical Paths under _main in BANK8 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK8 |
|
None. |
|
Critical Paths under _main in BANK9 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK9 |
|
None. |
|
Critical Paths under _main in BANK10 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK10 |
|
None. |
|
Critical Paths under _main in BANK11 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK11 |
|
None. |
|
Critical Paths under _main in BANK12 |
|
None. |
|
Critical Paths under _InterruptHandler in BANK12 |
|
None. |
|
Call Graph Tables: |
|
--------------------------------------------------------------------------------- |
(Depth) Function Calls Base Space Used Autos Params Refs |
--------------------------------------------------------------------------------- |
(0) _main 208 208 0 3554 |
35 BANK0 20 20 0 |
0 BANK1 77 77 0 |
0 BANK2 77 77 0 |
_Pins_Init |
_Read_Address |
_I2C1_Init |
_I2C1_Configure_Slave |
_I2C2_Init |
_I2C2_Configure_Master |
_Interrupt_Init |
_Interrupt_Enable |
_TLC59116_Init |
_TLC59116_Write_All |
_MCP23009_Init |
_MCP23009_Query |
--------------------------------------------------------------------------------- |
(1) _MCP23009_Query 4 4 0 412 |
7 BANK0 4 4 0 |
_I2C2_Master_Send |
_I2C2_Master_Recv |
_I2C2_Get_Status |
_I2C2_Read_Buffer |
--------------------------------------------------------------------------------- |
(2) _I2C2_Read_Buffer 5 5 0 52 |
0 BANK0 5 5 0 |
--------------------------------------------------------------------------------- |
(2) _I2C2_Master_Recv 3 2 1 66 |
0 BANK0 3 2 1 |
--------------------------------------------------------------------------------- |
(1) _MCP23009_Init 11 11 0 393 |
7 BANK0 11 11 0 |
_I2C2_Master_Send |
_I2C2_Get_Status |
--------------------------------------------------------------------------------- |
(1) _TLC59116_Write_All 22 22 0 962 |
7 BANK0 21 21 0 |
_I2C2_Master_Send |
_I2C2_Get_Status |
--------------------------------------------------------------------------------- |
(1) _TLC59116_Init 28 28 0 801 |
7 BANK0 28 28 0 |
_I2C2_Master_Send |
_I2C2_Get_Status |
--------------------------------------------------------------------------------- |
(2) _I2C2_Get_Status 0 0 0 0 |
--------------------------------------------------------------------------------- |
(2) _I2C2_Master_Send 7 5 2 178 |
0 BANK0 7 5 2 |
--------------------------------------------------------------------------------- |
(1) _Interrupt_Enable 0 0 0 0 |
--------------------------------------------------------------------------------- |
(1) _Interrupt_Init 0 0 0 0 |
--------------------------------------------------------------------------------- |
(1) _I2C2_Configure_Master 2 2 0 22 |
0 BANK0 2 2 0 |
--------------------------------------------------------------------------------- |
(1) _I2C2_Init 2 2 0 22 |
0 BANK0 2 2 0 |
--------------------------------------------------------------------------------- |
(1) _I2C1_Configure_Slave 2 2 0 22 |
0 BANK0 2 2 0 |
--------------------------------------------------------------------------------- |
(1) _I2C1_Init 2 2 0 22 |
0 BANK0 2 2 0 |
--------------------------------------------------------------------------------- |
(1) _Read_Address 4 4 0 27 |
0 BANK0 4 4 0 |
--------------------------------------------------------------------------------- |
(1) _Pins_Init 0 0 0 0 |
--------------------------------------------------------------------------------- |
Estimated maximum stack depth 2 |
--------------------------------------------------------------------------------- |
(Depth) Function Calls Base Space Used Autos Params Refs |
--------------------------------------------------------------------------------- |
(3) _InterruptHandler 1 1 0 642 |
8 COMMON 1 1 0 |
_I2C1_Interrupt_Handler |
_I2C2_Interrupt_Handler |
--------------------------------------------------------------------------------- |
(4) _I2C2_Interrupt_Handler 0 0 0 321 |
_I2C2_Interrupt_Master |
_I2C2_Interrupt_Slave |
--------------------------------------------------------------------------------- |
(5) _I2C2_Interrupt_Slave 6 6 0 273 |
2 COMMON 6 6 0 |
_I2C2_Process_Receive |
--------------------------------------------------------------------------------- |
(6) _I2C2_Process_Receive 3 3 0 45 |
0 COMMON 2 2 0 |
--------------------------------------------------------------------------------- |
(5) _I2C2_Interrupt_Master 4 4 0 48 |
0 COMMON 4 4 0 |
--------------------------------------------------------------------------------- |
(4) _I2C1_Interrupt_Handler 0 0 0 321 |
_I2C1_Interrupt_Master |
_I2C1_Interrupt_Slave |
--------------------------------------------------------------------------------- |
(5) _I2C1_Interrupt_Slave 6 6 0 273 |
2 COMMON 6 6 0 |
_I2C1_Process_Receive |
--------------------------------------------------------------------------------- |
(6) _I2C1_Process_Receive 3 3 0 45 |
0 COMMON 2 2 0 |
--------------------------------------------------------------------------------- |
(5) _I2C1_Interrupt_Master 4 4 0 48 |
0 COMMON 4 4 0 |
--------------------------------------------------------------------------------- |
Estimated maximum stack depth 6 |
--------------------------------------------------------------------------------- |
|
Call Graph Graphs: |
|
_main (ROOT) |
_Pins_Init |
_Read_Address |
_I2C1_Init |
_I2C1_Configure_Slave |
_I2C2_Init |
_I2C2_Configure_Master |
_Interrupt_Init |
_Interrupt_Enable |
_TLC59116_Init |
_I2C2_Master_Send |
_I2C2_Get_Status |
_TLC59116_Write_All |
_I2C2_Master_Send |
_I2C2_Get_Status |
_MCP23009_Init |
_I2C2_Master_Send |
_I2C2_Get_Status |
_MCP23009_Query |
_I2C2_Master_Send |
_I2C2_Master_Recv |
_I2C2_Get_Status |
_I2C2_Read_Buffer |
|
_InterruptHandler (ROOT) |
_I2C1_Interrupt_Handler |
_I2C1_Interrupt_Master |
_I2C1_Interrupt_Slave |
_I2C1_Process_Receive |
_I2C2_Interrupt_Handler |
_I2C2_Interrupt_Master |
_I2C2_Interrupt_Slave |
_I2C2_Process_Receive |
|
Address spaces: |
Name Size Autos Total Cost Usage |
BIGRAM 3F0 0 0 0 0.0% |
EEDATA 100 0 0 0 0.0% |
NULL 0 0 0 0 0.0% |
CODE 0 0 0 0 0.0% |
BITCOMMON E 0 0 1 0.0% |
BITSFR0 0 0 0 1 0.0% |
SFR0 0 0 0 1 0.0% |
COMMON E 9 A 2 71.4% |
BITSFR1 0 0 0 2 0.0% |
SFR1 0 0 0 2 0.0% |
BITSFR2 0 0 0 3 0.0% |
SFR2 0 0 0 3 0.0% |
STACK 0 0 A 3 0.0% |
BITBANK0 50 0 0 4 0.0% |
BITSFR3 0 0 0 4 0.0% |
SFR3 0 0 0 4 0.0% |
BANK0 50 37 4A 5 92.5% |
BITSFR4 0 0 0 5 0.0% |
SFR4 0 0 0 5 0.0% |
BITBANK1 50 0 0 6 0.0% |
BITSFR5 0 0 0 6 0.0% |
SFR5 0 0 0 6 0.0% |
BANK1 50 4D 4D 7 96.3% |
BITSFR6 0 0 0 7 0.0% |
SFR6 0 0 0 7 0.0% |
BITBANK2 50 0 0 8 0.0% |
BITSFR7 0 0 0 8 0.0% |
SFR7 0 0 0 8 0.0% |
BANK2 50 4D 4D 9 96.3% |
BITSFR8 0 0 0 9 0.0% |
SFR8 0 0 0 9 0.0% |
BITBANK3 50 0 0 10 0.0% |
BITSFR9 0 0 0 10 0.0% |
SFR9 0 0 0 10 0.0% |
BANK3 50 0 0 11 0.0% |
BITSFR10 0 0 0 11 0.0% |
SFR10 0 0 0 11 0.0% |
BITBANK4 50 0 0 12 0.0% |
BITSFR11 0 0 0 12 0.0% |
SFR11 0 0 0 12 0.0% |
BANK4 50 0 0 13 0.0% |
BITSFR12 0 0 0 13 0.0% |
SFR12 0 0 0 13 0.0% |
BITBANK5 50 0 0 14 0.0% |
BITSFR13 0 0 0 14 0.0% |
SFR13 0 0 0 14 0.0% |
BANK5 50 0 0 15 0.0% |
BITSFR14 0 0 0 15 0.0% |
SFR14 0 0 0 15 0.0% |
BITBANK6 50 0 0 16 0.0% |
BITSFR15 0 0 0 16 0.0% |
SFR15 0 0 0 16 0.0% |
BANK6 50 0 0 17 0.0% |
BITSFR16 0 0 0 17 0.0% |
SFR16 0 0 0 17 0.0% |
BITBANK7 50 0 0 18 0.0% |
BITSFR17 0 0 0 18 0.0% |
SFR17 0 0 0 18 0.0% |
BANK7 50 0 0 19 0.0% |
BITSFR18 0 0 0 19 0.0% |
SFR18 0 0 0 19 0.0% |
BITSFR19 0 0 0 20 0.0% |
SFR19 0 0 0 20 0.0% |
ABS 0 0 EE 20 0.0% |
BITBANK8 50 0 0 21 0.0% |
BITSFR20 0 0 0 21 0.0% |
SFR20 0 0 0 21 0.0% |
BANK8 50 0 0 22 0.0% |
BITSFR21 0 0 0 22 0.0% |
SFR21 0 0 0 22 0.0% |
BITBANK9 50 0 0 23 0.0% |
BITSFR22 0 0 0 23 0.0% |
SFR22 0 0 0 23 0.0% |
BANK9 50 0 0 24 0.0% |
BITSFR23 0 0 0 24 0.0% |
SFR23 0 0 0 24 0.0% |
BITBANK10 50 0 0 25 0.0% |
BITSFR24 0 0 0 25 0.0% |
SFR24 0 0 0 25 0.0% |
BANK10 50 0 0 26 0.0% |
BITSFR25 0 0 0 26 0.0% |
SFR25 0 0 0 26 0.0% |
BITBANK11 50 0 0 27 0.0% |
BITSFR26 0 0 0 27 0.0% |
SFR26 0 0 0 27 0.0% |
BANK11 50 0 0 28 0.0% |
BITSFR27 0 0 0 28 0.0% |
SFR27 0 0 0 28 0.0% |
BITBANK12 30 0 0 29 0.0% |
BITSFR28 0 0 0 29 0.0% |
SFR28 0 0 0 29 0.0% |
BANK12 30 0 0 30 0.0% |
BITSFR29 0 0 0 30 0.0% |
SFR29 0 0 0 30 0.0% |
BITSFR30 0 0 0 31 0.0% |
SFR30 0 0 0 31 0.0% |
DATA 0 0 F8 31 0.0% |
BITSFR31 0 0 0 32 0.0% |
SFR31 0 0 0 32 0.0% |
|
|
Microchip Technology PIC Macro Assembler V1.20 build 52243 |
Symbol Table Sun Jan 26 16:29:58 2014 |
|
??_Interrupt_Init 0020 ??_Interrupt_Enable 0020 |
TLC59116_Write_All@values 003B TLC59116_Write_All@result 003A |
__CFG_CP$OFF 0000 I2C2_Interrupt_Slave@received_data 0076 |
main@i2c1_data 00A0 main@i2c2_data 0120 |
l500 0C97 l445 0D5B |
l448 0D96 __CFG_CPD$OFF 0000 |
__CFG_BORV$LO 0000 wreg 0009 |
__CFG_IESO$ON 0000 __CFG_LVP$OFF 0000 |
l2171 0740 l2333 0D4D |
l2165 0729 l2157 071D |
l2175 0748 l2169 0738 |
l2277 0C47 l2373 07B2 |
l2385 0C6B l2393 0C87 |
l2661 0DF2 l2663 0E0C |
l2909 0D8D l2881 07DA |
l2875 07D8 l2885 07E1 |
l2895 07F4 l2889 07F2 |
u1104 072E u1105 072D |
u1080 0712 u1065 0CB2 |
u1075 0CC1 __CFG_WRT$OFF 0000 |
__CFG_FCMEN$ON 0000 _main 06DC |
fsr0h 0005 fsr1h 0007 |
fsr0l 0004 indf0 0000 |
indf1 0001 fsr1l 0006 |
btemp 007E __CFG_BOREN$ON 0000 |
start 0019 I2C2_Configure_Master@speed 0021 |
__CFG_MCLRE$ON 0000 ??_I2C1_Interrupt_Handler 0078 |
?_Read_Address 0070 ??_I2C2_Get_Status 0020 |
__CFG_PLLEN$ON 0000 __size_of_TLC59116_Init 0046 |
_I2C2_Configure_Master 0C2B __end_of_I2C1_Init 0DEC |
__end_of_I2C2_Init 0E9A ?_main 0070 |
__CFG_WDTE$OFF 0000 i1l200 0F25 |
i1l211 0FAC i1l205 0F50 |
i1l134 02F6 i1l145 0378 |
i1l209 0FBE i1l162 0455 |
i1l412 0618 i1l181 0EBD |
i1l341 0038 i1l166 048F |
i1l174 0533 i1l159 042C |
i1l407 05E6 i1l271 0010 |
i1l184 0EC6 i1l352 00D1 |
i1l416 0698 i1l272 0016 |
i1l418 0684 i1l373 021C |
i1l381 02DC i1l366 01A4 |
i1l391 0568 i1l369 01D8 |
i1l388 055B __end_of_MCP23009_Init 0C76 |
I2C2_Process_Receive@ret 0071 main@i 0056 |
__size_of_I2C1_Interrupt_Slave 0166 wtemp0 007E |
_i2c_data_p 0079 __initialization 0BA5 |
??_Read_Address 0020 __end_of_main 074D |
_MCP23009_Query 0C76 ??_main 0043 |
__end_of_I2C1_Process_Receive 0B9B _I2C1_Interrupt_Master 02DD |
I2C1_Interrupt_Slave@received_data 0076 main@btn_value 0055 |
_ANSELA 018C _ANSELB 018D |
_ANSELC 018E i1l3003 0F62 |
i1l3005 0F70 i1l3031 0FD5 |
i1l3007 0F7C i1l3009 0F83 |
i1l3113 060F i1l3121 063D |
i1l3027 0FCC i1l3019 0FA4 |
i1l3035 0FE4 i1l3123 064C |
i1l2501 034A i1l3037 0FF6 |
i1l3125 0654 i1l3053 054E |
i1l2503 035A i1l3135 067B |
i1l3119 062C i1l3151 06BE |
i1l3081 0585 i1l3153 06D2 |
i1l2523 039D i1l2507 0363 |
i1l3163 0BD0 i1l3147 06AC |
i1l3059 0557 i1l3171 0BE8 |
i1l2605 04ED i1l2533 03CB |
i1l3093 05B4 i1l3077 057B |
i1l3069 056D i1l2615 0511 |
i1l2543 03E1 i1l2519 0385 |
i1l2551 0413 i1l2623 0B99 |
i1l2609 04F8 i1l2561 043D |
i1l3097 05DC i1l3089 05B2 |
i1l2555 041C i1l2539 03D6 |
i1l2491 031A i1l2483 02E6 |
i1l2811 01E7 i1l2803 01BA |
i1l3099 05DF i1l2573 047A |
i1l2549 03FA i1l2733 0064 |
i1l2725 0026 i1l2495 0332 |
i1l2831 024A i1l2815 0205 |
i1l2743 009F i1l2585 049C |
i1l2569 0462 i1l2841 0280 |
i1l2761 00E1 i1l2737 0081 |
i1l2745 00B0 i1l2851 029B |
i1l2827 022C i1l2589 04B4 |
i1l2781 0143 i1l2765 00FF |
i1l2749 00BA i1l2599 04E2 |
i1l2943 0EB9 i1l2847 028E |
i1l2775 0135 i1l2791 016E |
i1l2937 0EB1 i1l2857 02B9 |
i1l2785 0150 i1l2793 0188 |
i1l2865 0BA3 i1l2981 0F1C |
i1l2965 0ED4 i1l2797 0192 |
i1l2983 0F1F i1l2977 0EFA |
i1l2997 0F48 I2C2_Master_Recv@address 0022 |
_TLC59116_Init 0D12 _SSPADD 0212 |
__CFG_PWRTE$OFF 0000 __size_of_I2C2_Interrupt_Slave 01A8 |
__end_of_MCP23009_Query 0CA7 __size_of_I2C1_Interrupt_Handler 0016 |
__CFG_STVREN$ON 0000 __size_of_Pins_Init 001A |
?_I2C2_Configure_Master 0070 I2C2_Interrupt_Master@tmp_923 0073 |
I2C2_Master_Send@address 0025 __end_of_I2C2_Process_Receive 0BA5 |
?_I2C2_Read_Buffer 0070 ?_TLC59116_Init 0070 |
??_I2C2_Read_Buffer 0020 __end_of__initialization 0BB0 |
?_I2C2_Master_Recv 0020 ?_I2C2_Master_Send 0020 |
??_I2C2_Master_Recv 0021 ??_I2C2_Master_Send 0022 |
__pcstackCOMMON 0070 __pidataBANK0 0BB3 |
I2C2_Read_Buffer@i 0024 ?_MCP23009_Query 0070 |
I2C2_Interrupt_Master@tmp 0072 ?_I2C1_Interrupt_Master 0070 |
__size_of_InterruptHandler 0015 __end_of_I2C1_Configure_Slave 0C2B |
_OPTION_REGbits 0095 __size_of_Interrupt_Enable 0003 |
__size_of_TLC59116_Write_All 0070 MCP23009_Query@buffer 0028 |
_I2C1_Interrupt_Handler 0BC5 __end_of_Read_Address 0CDA |
MCP23009_Query@result 002A __end_of_Pins_Init 0C0F |
_I2C2_Get_Status 07BD __pnvCOMMON 0079 |
_I2C2_Interrupt_Master 001B _I2C1_Process_Receive 0B91 |
I2C2_Master_Send@msg 0021 I2C2_Master_Send@i 0026 |
__pmaintext 06DC __pintentry 0004 |
_I2C1_Init 0D9E _I2C2_Init 0E3F |
_SSP1ADD 0212 _SSP2ADD 021A |
_SSP1BUF 0211 _SSP2BUF 0219 |
??_TLC59116_Init 0027 I2C2@i2c_data_p 0069 |
?_I2C1_Process_Receive 0070 ??_I2C2_Interrupt_Handler 0078 |
I2C2_Interrupt_Slave@data_read_from_buffer 0077 I2C1_Interrupt_Slave@data_read_from_buffer 0077 |
__end_of_I2C1_Interrupt_Slave 1000 _I2C2_Process_Receive 0B9B |
__ptext1 0C76 __ptext2 0D58 |
__ptext3 0CDA __ptext4 0C4D |
__ptext5 074D __ptext6 0D12 |
__ptext7 07BD __ptext8 0DEC |
__ptext9 07FB __size_of_Interrupt_Init 0001 |
?_I2C1_Init 0070 ?_I2C2_Init 0070 |
__end_of_I2C2_Get_Status 07FB MCP23009_Init@buffer 0029 |
I2C1_Process_Receive@c 0070 end_of_initialization 0BB0 |
MCP23009_Init@result 0031 ?_I2C2_Interrupt_Master 0070 |
init_ram 0B8B initloop 0B8C |
_I2C1_Configure_Slave 0C0F ??_I2C2_Configure_Master 0020 |
__size_of_MCP23009_Init 0029 ?_I2C2_Process_Receive 0070 |
_InterruptHandler 0004 __size_of_Read_Address 0033 |
__end_of_I2C2_Interrupt_Slave 06DC _Interrupt_Enable 07FB |
__CFG_FOSC$INTOSC 0000 _TRISAbits 008C |
_TRISBbits 008D _TRISCbits 008E |
??_I2C1_Process_Receive 0070 ?_I2C1_Configure_Slave 0070 |
??_MCP23009_Query 0027 __size_of_I2C2_Read_Buffer 0046 |
??_I2C1_Interrupt_Master 0070 __size_of_I2C2_Interrupt_Handler 001A |
_Read_Address 0CA7 I2C1_Interrupt_Master@tmp_611 0073 |
__size_of_I2C2_Master_Recv 0038 __size_of_I2C2_Master_Send 0053 |
?_I2C1_Interrupt_Handler 0070 start_initialization 0BA5 |
??_I2C1_Init 0020 ??_I2C2_Init 0020 |
?_I2C2_Get_Status 0070 _MCP23009_Init 0C4D |
_I2C1_Interrupt_Slave 0E9A I2C2_Interrupt_Slave@overrun_error 0074 |
_Pins_Init 0BF5 I2C2_Master_Recv@length 0020 |
??_I2C2_Process_Receive 0070 __pdataBANK0 0057 |
I2C1_Interrupt_Master@tmp 0072 __end_of_I2C1_Interrupt_Handler 0BDB |
__end_of_TLC59116_Write_All 07BD main@i2c_slave_addr 0054 |
I2C2_Master_Send@length 0020 _Interrupt_Init 07FE |
MCP23009_Query@F3053 0067 __pcstackBANK0 0020 |
__pcstackBANK1 00A0 __pcstackBANK2 0120 |
?_MCP23009_Init 0070 _I2C2_Interrupt_Handler 0BDB |
TLC59116_Init@buffer 0029 ?_I2C1_Interrupt_Slave 0070 |
TLC59116_Init@result 0042 ??_I2C1_Configure_Slave 0020 |
?_Pins_Init 0070 __pnvBANK0 0069 |
_I2C2_Interrupt_Slave 0534 __end_of_Interrupt_Init 07FF |
??_I2C2_Interrupt_Master 0070 I2C2_Read_Buffer@buffer 0023 |
__end_of_TLC59116_Init 0D58 __end_of_InterruptHandler 0019 |
_LATCbits 010E _PIE1bits 0091 |
_PIE4bits 0094 ?_I2C2_Interrupt_Slave 0070 |
__end_of_Interrupt_Enable 07FE Read_Address@ret 0023 |
I2C1_Interrupt_Slave@overrun_error 0074 _PIR1bits 0011 |
_PIR4bits 0014 _I2C2_Read_Buffer 0D58 |
main@F3130 0057 _SSP1CON1 0215 |
_SSP1CON2 0216 _SSP2CON1 021D |
_SSP2CON2 021E __size_of_I2C2_Configure_Master 0022 |
__end_of_I2C2_Configure_Master 0C4D _SSP1STAT 0214 |
_SSP2STAT 021C ?_Interrupt_Init 0070 |
_I2C2_Master_Recv 0CDA _I2C2_Master_Send 0DEC |
_WPUCbits 020E ??_MCP23009_Init 0027 |
??_I2C1_Interrupt_Slave 0072 I2C1_Process_Receive@ret 0071 |
I2C2_Process_Receive@c 0070 ??_Pins_Init 0020 |
__size_of_I2C1_Interrupt_Master 0257 __end_of_I2C1_Interrupt_Master 0534 |
__ptext10 07FE __ptext11 0C2B |
__ptext20 0B9B __ptext12 0E3F |
__ptext21 001B __ptext13 0C0F |
__ptext22 0BC5 __ptext14 0D9E |
__ptext23 0E9A __ptext15 0CA7 |
__ptext24 0B91 __ptext16 0BF5 |
__ptext25 02DD __ptext18 0BDB |
__ptext19 0534 _SSP1CON1bits 0215 |
_SSP1CON2bits 0216 I2C2_Interrupt_Slave@data_written_to_buffer 0075 |
I2C1_Interrupt_Slave@data_written_to_buffer 0075 _SSP2CON1bits 021D |
_SSP2CON2bits 021E I2C1_Configure_Slave@addr 0021 |
__size_of_main 0071 ??_I2C2_Interrupt_Slave 0072 |
__size_of_I2C1_Process_Receive 000A _SSP1STATbits 0214 |
main@leds 0044 _SSP2STATbits 021C |
?_I2C2_Interrupt_Handler 0070 _INTCONbits 000B |
intlevel1 0000 _TLC59116_Write_All 074D |
__size_of_I2C2_Get_Status 003E __CFG_CLKOUTEN$OFF 0000 |
?_TLC59116_Write_All 0070 _OSCCONbits 0099 |
I2C1_Init@data 0021 __size_of_I2C2_Process_Receive 000A |
I2C2_Init@data 0021 __size_of_MCP23009_Query 0031 |
__end_of_I2C2_Interrupt_Handler 0BF5 ??_TLC59116_Write_All 0027 |
__end_of_I2C2_Read_Buffer 0D9E __size_of_I2C2_Interrupt_Master 02C2 |
__end_of_I2C2_Interrupt_Master 02DD __size_of_I2C1_Init 004E |
__size_of_I2C2_Init 005B __end_of_I2C2_Master_Recv 0D12 |
__end_of_I2C2_Master_Send 0E3F ?_InterruptHandler 0070 |
__size_of_I2C1_Configure_Slave 001C ??_InterruptHandler 0078 |
?_Interrupt_Enable 0070 TLC59116_Write_All@buffer 0029 |