![]() |
|
PIC assembler. Przekazywanie parametrów do procedur... - Wersja do druku +- Forum HomeMade (https://sp-hm.pl) +-- Dział: Oprogramowanie (https://sp-hm.pl/forumdisplay.php?fid=12) +--- Dział: Technika programowania mikroprocesorów (https://sp-hm.pl/forumdisplay.php?fid=58) +--- Wątek: PIC assembler. Przekazywanie parametrów do procedur... (/showthread.php?tid=1262) |
PIC assembler. Przekazywanie parametrów do procedur... - SQ9RFC - 11-04-2014 PIC assembler... Chciałbym użyć potu jako parametru procedury - są jakieś sztuczki ? jakiś wskaźnik na port ... coś mi chodzi po głowie, ale może ktoś to przerabiał i bedzie szybciej ![]() A może ktoś w C napisze najmniejszy fragment kodu, podeśle HEX, a ja sobie popatrzę jak to autor kompilatora zrobił... RE: PIC assembler. Przekazywanie parametrów do procedur... - SQ9RFC - 14-04-2014 Okazuje się że w C również się tego w prosty sposób nie da zrobić ... RE: PIC assembler. Przekazywanie parametrów do procedur... - SQ6ADE - 15-04-2014 Napisz jaśniej o co się rozchodzi z tym użyciem portu jako parametru procedury. RE: PIC assembler. Przekazywanie parametrów do procedur... - SP3TLU - 17-04-2014 Witam! Może tu: http://mirekk36.blogspot.com/2011/08/test.html kolega znajdzie odpowiedź. "Tym razem jednak możesz zadać spokojnie pytanie, o jakiś konkretny przykład konieczności takiego odmiennego użycia specyfikatora volatile. Proszę bardzo, mogę przywołać przykład, w którym zechcemy użyć jako argumentu jakiejś tam funkcji nazwy dowolnego portu aby funkcja mogła wykonać na nim stosowne operacje. Jak zapewne wiesz, rejestry portów znajdują się tak na prawdę w przestrzeni adresowej pamięci RAM ale nie w obszarze gdzie umieszczane są zmienne lecz wcześniej. Z tego punktu widzenia logicznym wydaje się fakt, że odwoływanie się więc do portów jako do komórek pamięci RAM nie może w żadnym wypadku podlegać procesom optymalizacji. Zresztą już sam kompilator zaopatruje definicje portów specyfikatorem volatile, aby w przyszłości programista poprzez wyłączenie optymalizacji nie narobił sam sobie szkód w tym zakresie. Zatem definicja takiej funkcji musi wyglądać jak poniżej:" Vy 73! Sebastian RE: PIC assembler. Przekazywanie parametrów do procedur... - SQ9RFC - 16-05-2014 MPLAB ... Kod ponad 2k ... Przestawienie includa powoduje że procedury w math.inc są niewidoczne dla reszty programu ![]() Działa (prawie): ... Include "testy.inc" Include "pwm.inc" Include "bat_volts.inc" Include "frq.inc" Include "key.inc" Include "key_go.inc" Include "math.inc" include "lcd_4bit.inc" Include "menu.inc" Include "menu_go.inc" Include "init_old.inc" include "delays_10_MHz.inc" Include "encoder2.inc" end a to nie działa: kompilator wywala: "Symbol not previously defined (...)" ... Include "testy.inc" Include "pwm.inc" Include "bat_volts.inc" Include "frq.inc" Include "key.inc" Include "key_go.inc" include "lcd_4bit.inc" Include "menu.inc" Include "menu_go.inc" Include "init_old.inc" include "delays_10_MHz.inc" Include "encoder2.inc" Include "math.inc" end Czy ten kompilator sprawdza czy część procedury jest pod koniec jednego banku, a reszta na początku drugiego? Ponadto chrzani 'return' z dalekiego 'call' !!!. Programuje ktoś tu PICe? ...PIC16F87x |