-
Data: 2017-02-14 10:55:09
Temat: Re: Programowanie AT89Cxx51
Od: "J.F." <j...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik "MKi" napisał w wiadomości grup
dyskusyjnych:58a2c045$0$15193$6...@n...neostrad
a.pl...
> Mam jednak kilka pytań:
> 1) Widzę, że możliwy jest dostęp do pinów GPIO za pomocą konstrukcji
> w
> rodzaju Px_y, gdzie x oznacza numer portu, a y numer pinu w porcie.
> Można dzięki temu przypisywać wartość bezpośrednio do pinu, (np.
> P0_1=1). Czym jest taka konstrukcja? Można zdefiniować jakąś zmienną
Maja taki specjalny tryb adresacji - dla wybranych rejestrow i kawalka
pamieci dostepny jest tryb bitowy.
Zapisujesz odpowiedna instrukcja i bit sie zmienia.
Ale ... kompilator musi wiedziec, ze tu jest potrzebna specjalna
instrukcja.
>> wskaźnikową, która umożliwi mi dostęp do tak zdefiniowanego pinu?
>> Chciałbym przeportować pewną prostą bibliotekę do obsługi
>> przycisków.
>> Dobrze by było, gdybym mógł przekazać informację o pinie właśnie w
>> ten
>> sposób, jako argument funkcji, a potem trzymać ją w strukturze
>> opisującej przycisk.
>Zerknij do plików nagłówkowych SDCC, np:
>__sbit __at (0x87) P0_7
>Jak widać, to jest po prostu liczba, tylko z atrybutami __sbit __at
Przy czym jak tych przyciskow wiecej, to moze byc jednak lepiej
oblsugiwac to calymi bajtami.
>> 2) Czy możliwe jest korzystanie z portów w sposób taki, jak w
>> AVR-ach?
>> To znaczy coś w rodzaju P0 |= (1<<2).
>Oczywiście, dokładnie tak samo.
Ostroznie, tam sa rozne tryby adresacji, i znow trzeba uwazac co
kompilator z tym zrobi.
Raczej zrobi dobrze, ale instrukcja
ORL P0, #01h
odczytuje rejestr portu wyjsciowego, ustawia najmlodszy bit i zapisuje
ponownie.
Instrukcja
MOV A, P0
odczytuje stanu pinow portu.
Jak potem zrobisz
ORL A,#01h
MOV P0,A
To to nie bedzie to samo (patrz nizej).
>> 3) Dobrze rozumiem, że te mikrokontrolery nie posiadają żadnych
>> rejestrów konfiguracyjnych, jeśli chodzi o kierunek pinu i działają
>> podobnie do prostych ekspanderów I2C?
>Tu już nie jestem taki pewny, daawno nie programowałem AT89.
>Ale chyba faktycznie nie ma żadnej konfiguracji, stan niski
>to twarde 0, stan wysoki to wysoka impedancja.
Dokladnie - rejestry sa jednoczesnie wejsciowe i wyjsciowe.
tranzystor wyjsciowy "dolny" jest silny, "gorny" slabiutki, a w
zasadzie to stale pull-up (+ te 2 cykle).
Jesli ustawisz bit na "0", to wyjscie bedzie na 0, i nie nalezy
podawac z zewnatrz stanu wysokiego.
Jesli ustawisz bit na "1", to wyjscie bedzie w stanie wysokim, ale
slabym (~1mA), mozna z zewnatrz wymusic zero.
Bity, ktore maja byc wejsciowe, musisz najpierw ustawic na 1.
J.
Następne wpisy z tego wątku
- 14.02.17 11:24 w systemie siła 'PO/EU
- 15.02.17 06:16 Atlantis
- 15.02.17 09:56 MKi
- 15.02.17 13:27 Marek
- 16.02.17 08:33 Atlantis
- 16.02.17 08:40 Zbych
- 16.02.17 09:18 Atlantis
- 20.02.17 18:36 Atlantis
- 20.02.17 19:04 J.F.
- 23.02.17 08:38 MKi
- 23.02.17 10:20 Piotr Gałka
- 23.02.17 21:07 Zbych
- 24.02.17 11:01 Piotr Gałka
- 24.02.17 11:28 Zbych
- 24.02.17 11:38 Piotr Gałka
Najnowsze wątki z tej grupy
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
Najnowsze wątki
- 2025-07-11 Rejestrator temperatur - termopara, siec
- 2025-07-11 DPD, przeniesienie numerów z a2mobile i z Orange
- 2025-07-11 Warszawa => Account Manager - Sprzedaż Usług Rekrutacyjnych <=
- 2025-07-11 Poznań => Senior Key Account Manager IT <=
- 2025-07-11 Warszawa => Strategic Account Manager <=
- 2025-07-11 Warszawa => International Freight Forwarder <=
- 2025-07-11 Warszawa => Spedytor Międzynarodowy <=
- 2025-07-11 MObywatel - fantazja poniosła
- 2025-07-11 Białystok => Programista Kotlin <=
- 2025-07-11 Kraków => PHP Developer (Full Stack) <=
- 2025-07-11 Warszawa => Specialist in Administration <=
- 2025-07-11 Warszawa => Specjalista/tka ds. Administracji <=
- 2025-07-11 Warszawa => Senior Product Manager <=
- 2025-07-11 Szczecin => Key Account Manager IT <=
- 2025-07-11 Łódź => Programista Mainframe (z/OS, Assembler) <=