-
Data: 2017-02-24 12:06:51
Temat: Re: Programowanie AT89Cxx51
Od: "J.F." <j...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik "Piotr Gałka" napisał w wiadomości grup
dyskusyjnych:o8p09b$l8c$...@n...chmurka.net...
W dniu 2017-02-23 o 21:07, Zbych pisze:
>>> Wydaje mi się, że skoro P0_7 jest już samo w sobie adresem pinu
>>> (czyli
>>> wskaźnikiem na pin) to może uda Ci się obejść bez wskaźników na
>>> ten
>>> wskaźnik.
>>> Warunkiem jest żeby C potrafiło korzystać z rozkazów assemblera z
>>> adresowaniem bitowym.
>> Adresowanie bitowe w '51 wymaga podania numeru bitu od razu w
>> rozkazie,
>> nie ma trybu adresowania pośredniego przez rejestr.
>
>Całkiem być może, że nie ogarnąłem sedna zagadnienia.
>Rozumiałem, że:
>Atlantis chce przechowywać wskaźniki na piny. A ponieważ we
>wcześniejszych jego pracach (z innymi procesorami) wymagało to użycia
>jakichś wskaźników w C to teraz też myśli jak zrobić sobie wskaźniki
>na te numerki określające bitowe adresy pinów.
>Z jego wypowiedzi rozumiałem, że dotychczas przechowywał wskaźniki na
>piny, a nie wskaźniki na wskaźniki na piny.
>---- koniec opisu jak ja to rozumiałem ----
>Chciałem jedynie zwrócić uwagę, że _być_może_ szuka czegoś co ma
>gotowe, że _być_może_ wystarczy posłużyć się (i przechowywać) te
>bitowe adresy pinów.
Ale wlasnie nie mozesz.
Mozesz napisac w C np
P0_7 = 1
i miec nadzieje, ze kompilator skompiluje z uzyciem wlasciwych
rozkazow.
Ale nie mozesz napisac
wskaznik = P0_7 ;
....
*wskaznik = 1 ;
bo ... nie ma takiego rozkazu, ktory moglby kompilator uzyc, aby
potrafil zaadresowac bit o numerze w jakims rejestrze podanym.
wiec nie da sie np zrobic funkcji ktora poczeka na nacisniecie
klawisza,
cos w rodzaju
void function wait_for_key(int keynr)
{
....
}
(zadziala jako macro)
Nie da sie tez zrobic petli sprawdzi bity po kolei itp ...
>Nigdy nie używałem C dla żadnego mikrokontrolera. Wyobrażałem sobie,
>że C musi być trochę rozszerzane pod dany procesor.
>Czyli zakładałem, że w C dla 51-ki powinna być jakaś funkcja
>biblioteczna typu setbit() przyjumująca jako parametr jego adres i
>potrafiąca przetłumaczyć to na assembler nawet jak nie ma adresowania
>przez rejestr.
No i zakladam, ze C jest rozszerzone (w odpowiednio ambitnym
kompilatorze), i kompilator potrafi to skompilowac ... o ile adres
jest znany w czasie kompilacji.
Inaczej, to pozostaja dwie mozliwosci:
1) przygotowujemy sobie odpowiedni rozkaz w pamieci i wykonujemy go.
cos typu
setbit: ; A zawiera nr bitu
mov setbitr+1, A
setbitr: setb 0
ret
ha, ha - zycze powodzenia na 8051, z jej rozdzielonymi pamieciami
:-)
ale jesli system zawiera dodatkowy RAM, ktory bedzie widoczny jako
pamiec zewnetrzna i programu jednoczesnie, to moze by sie nawet udalo
(np na tym DScostam z bateryjka).
2) przygotowujemy sobie siec rozkazow:
setb 0
ret
setb 1
ret
setb 2
ret
....
i wyliczamy sobie to ktorego adresu skoczyc ... imo - niemal
niedopuszczalne, ale jak trzeba, to trzeba :-)
J.
Następne wpisy z tego wątku
- 24.02.17 21:00 AlexY
- 26.02.17 11:32 Atlantis
- 26.02.17 13:47 AlexY
- 26.02.17 15:48 Dariusz Dorochowicz
- 26.02.17 16:26 AlexY
- 26.02.17 17:17 Dariusz Dorochowicz
- 26.02.17 20:21 Atlantis
- 26.02.17 20:43 AlexY
- 26.02.17 20:50 Dariusz Dorochowicz
- 26.02.17 21:02 Atlantis
- 26.02.17 21:43 Zbych
- 26.02.17 23:21 Dariusz Dorochowicz
- 27.02.17 06:42 Atlantis
- 27.02.17 09:49 J.F.
- 27.02.17 09:59 J.F.
Najnowsze wątki z tej grupy
- "Wybitna" inteligencja AI
- test stereo
- Bluetooth stereo
- W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- Weryfikacja myjki ultradźwiękowej
- zasieg radaru
- Zmywarka Bosch SRV55T43EU - awaria
- Kod zniżkowy w TME do 26.09.2025
- SFP, 10G, simplex sc/apc
- [słabe wiatry powodują - przyp. JMJ] Energetyczny paraliż w Niemczech
- NxtPaper
- Programiści nie przestają zadziwiać świat
- Długi kabel zasilający a na końcu procek
- Dlaczego nam nie idzie
- Co czujnik to inna temperatura
Najnowsze wątki
- 2025-09-24 "Wybitna" inteligencja AI
- 2025-09-24 test stereo
- 2025-09-24 Bluetooth stereo
- 2025-09-24 Rzeszów => International Freight Forwarder <=
- 2025-09-24 Gdańsk => Delphi Programmer <=
- 2025-09-24 Warszawa => BI Developer / Analityk BI <=
- 2025-09-24 Alior zmiana logowania
- 2025-09-24 Warszawa => Senior Microsoft Dynamics 365 Business Central Consultant
- 2025-09-24 Andżelika Borys odwiedziła [WIELKIEGO PATRIOTĘ - przyp. JMJ] Andrzeja Poczobuta w [białoruskiej - przyp. JMJ] kolonii karnej
- 2025-09-24 W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- 2025-09-24 W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- 2025-09-24 W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- 2025-09-24 W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- 2025-09-23 Re: Kolory już są
- 2025-09-23 paragony grozy