-
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
- 8080
- Portowanie CP/M
- radyjko
- Re: Basen i chłodzenie w w wentylacji mechanicznej
- Akumulatory VRLA
- ładowarka zmarła
- Podstawa bezpiecznikowa jako rozłącznik DC
- Napięcie akumulatora wyłączające UPS / jakie nowe akumulatory do UPS?
- nawigacja satelitarna
- SmartLife/Tuya i osuszanie -- mordowanie z zimną krwią...
- Głośnik piezoelektryczny
- Mala autonomiczna kamera monitoringu
- czas na emeryturę i EB
- Generowanie sumy kontrolnej z fragmentu pliku bin
- Re: Mala autonomiczna kamera monitoringu
Najnowsze wątki
- 2024-07-11 Tokarze CNC czyli ciężkie życie prototypiarza
- 2024-07-12 Zgody na przetwarzanie danych
- 2024-07-13 IObit Uninstaller Pro 13.6.0.5 Multilingual: Installation Guide
- 2024-07-12 stare graty młode kozy
- 2024-07-11 8080
- 2024-07-13 Przyłącze dolne grzejnika
- 2024-07-13 IObit Uninstaller Pro 13.6.0.5 Multilingual Overview
- 2024-07-12 Czym wykonać otwór fi 100 w betonie komórkowym?
- 2024-07-12 Warszawa => Senior Rust Software Engineer <=
- 2024-07-12 Warszawa => Business Unit Manager (Recruitment Business) <=
- 2024-07-12 Warszawa => Head of WMS Competence Center for IT&D Contract Logistics
- 2024-07-12 Warszawa => Head od WMS Competence Center dla IT&D (Blue Yonder) <=
- 2024-07-12 Kraków => Ruby Backend Developer <=
- 2024-07-12 Warszawa => UX/UI Designer <=
- 2024-07-12 Częstochowa => Specjalista ds. Marketingu (E-Commerce) <=