-
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
- Multimetr z bluetooth
- Ciekawa mapka z BTS-ami
- Lampy uliczne LED z kubkiem
- Pęczniejące LiPo
- wyłącznik ścienny
- "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
Najnowsze wątki
- 2025-10-01 Dlaczego nie skorzystam z promocji -40% na MT w rocznej prenumeracie
- 2025-10-01 Multimetr z bluetooth
- 2025-10-01 Citek i "wymagane działanie"
- 2025-10-01 Białystok => Software Engineer .Net <=
- 2025-10-01 Rzeszów => International Freight Forwarder <=
- 2025-10-01 Wrocław => Specjalista ds. Marketingu Online (PPC) <=
- 2025-10-01 Gdańsk => Starszy programista oprogramowania C++ <=
- 2025-10-01 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-10-01 Rzeszów => Spedytor Międzynarodowy <=
- 2025-10-01 Białystok => Inżynier oprogramowania .Net <=
- 2025-10-01 => Senior Algorithm Developer (Java/Kotlin) <=
- 2025-10-01 Środa Wielkopolska => SAP FI/CO Konsultant wewnętrzny <=
- 2025-10-01 Ciekawa mapka z BTS-ami
- 2025-09-30 Lublin => Delphi Programmer <=
- 2025-09-30 Warszawa => Konsultant Wiodący SAP PP <=