Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
PIC assembler. Przekazywanie parametrów do procedur...
SQ9RFC Offline
Jerzy
*****

Liczba postów: 1,193
Dołączył: 02-07-2010
Post: #1
PIC assembler. Przekazywanie parametrów do procedur...
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 Tongue
A może ktoś w C napisze najmniejszy fragment kodu, podeśle HEX, a ja sobie popatrzę jak to autor kompilatora zrobił...

73 JERZY SQ9RFC
(Ten post był ostatnio modyfikowany: 13-04-2014 9:22 przez SQ9RFC.)
11-04-2014 10:59
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9RFC Offline
Jerzy
*****

Liczba postów: 1,193
Dołączył: 02-07-2010
Post: #2
RE: PIC assembler. Przekazywanie parametrów do procedur...
Okazuje się że w C również się tego w prosty sposób nie da zrobić ...

73 JERZY SQ9RFC
14-04-2014 22:29
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ6ADE Offline
Radjoamator.
****

Liczba postów: 539
Dołączył: 05-04-2010
Post: #3
RE: PIC assembler. Przekazywanie parametrów do procedur...
Napisz jaśniej o co się rozchodzi z tym użyciem portu jako parametru procedury.

tylko na FM UKF -> Just True Sound Hi-Fi Smile
15-04-2014 12:15
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP3TLU Offline


Liczba postów: 8
Dołączył: 24-02-2010
Post: #4
RE: PIC assembler. Przekazywanie parametrów do procedur...
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
17-04-2014 20:34
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9RFC Offline
Jerzy
*****

Liczba postów: 1,193
Dołączył: 02-07-2010
Post: #5
RE: PIC assembler. Przekazywanie parametrów do procedur...
MPLAB ...
Kod ponad 2k ...
Przestawienie includa powoduje że procedury w math.inc są niewidoczne dla reszty programu Huh

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

73 JERZY SQ9RFC
(Ten post był ostatnio modyfikowany: 16-05-2014 13:16 przez SQ9RFC.)
16-05-2014 13:06
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 3 gości