• R/O
  • SSH
  • HTTPS

pasripherals: Commit


Commit MetaInfo

Revision22 (tree)
Zeit2019-08-12 11:35:54
Autorderekwildstar

Log Message

- Ajuda atualizada

Ändern Zusammenfassung

Diff

--- trunk/src/lib/UADS1115.pas (revision 21)
+++ trunk/src/lib/UADS1115.pas (revision 22)
@@ -1,5 +1,6 @@
11 unit UADS1115;
2-
2+{:< Esta unit contém todas as entidades necessárias que permitem o acesso
3+simplificado ao ADS1115}
34 {$mode objfpc}{$H+}
45
56 interface
@@ -8,7 +9,10 @@
89 UPasRipherals;
910
1011 type
12+ //: Esta enumeração representa os possíveis ganhos programáveis do ADS1115
1113 TADS1115GainAplifier = (agaTwoThirds,aga1,aga2,aga4,aga8,aga16);
14+ //: Esta enumeração representa as possíveis taxas de transferência de dados
15+ //: que o ADS1115 suporta
1216 TADS1115DataRate = (adr8SPS,adr16SPS,adr32SPS,adr64SPS,adr128SPS,adr250SPS,adr475SPS,dr860SPS);
1317
1418 //: Esta classe provê acesso simplificado ao ADS1115, um conversor
--- trunk/src/lib/UPasRipherals.pas (revision 21)
+++ trunk/src/lib/UPasRipherals.pas (revision 22)
@@ -1,5 +1,6 @@
11 unit UPasRipherals;
2-
2+{:< Esta é a unit principal do PasRipherals. Ela contém todas as classes e
3+records necessários para o funcionamento padrão da biblioteca}
34 {$mode objfpc}{$H+}{$modeSwitch advancedRecords}
45
56 interface
@@ -10,8 +11,52 @@
1011 type
1112 TCustomPasRipherals = class;
1213
13- { TSavedSetate }
14+ { TPRSavedState }
1415
16+ //: Este record é usado pela propriedade @Link(TCustomPasRipherals.State) e
17+ //: representa os estados de todos os registradores do RPI. Os nomes dos
18+ //: membros são basicamente os mesmos nomes dos registradores, tal como são
19+ //: vistos no datasheet. Para maiores informações, consulte o datasheet
20+ //: @Member(GPFSEL0 Este membro representa o registrador GPFSEL0, o qual
21+ //: contém o primeiro conjunto de campos de seleção de funções dos GPIO,
22+ //: abrangendo os GPIO de 0 a 9. Cada GPIO ocupa 3 bits neste registrador e o
23+ //: valor destes 3 bits pode variar de de 0 até 7 (111) a fim de representar a
24+ //: função na qual o GPIO está operando)
25+ //: @Member(GPFSEL1 Este membro representa o registrador GPFSEL1, o qual
26+ //: contém o segundo conjunto de campos de seleção de funções dos GPIO,
27+ //: abrangendo os GPIO de 1 a 19. Cada GPIO ocupa 3 bits neste registrador e o
28+ //: valor destes 3 bits pode variar de de 0 até 7 (111) a fim de representar a
29+ //: função na qual o GPIO está operando)
30+ //: @Member(GPFSEL2 Este membro representa o registrador GPFSEL2, o qual
31+ //: contém o terceiro conjunto de campos de seleção de funções dos GPIO,
32+ //: abrangendo os GPIO de 20 a 29. Cada GPIO ocupa 3 bits neste registrador e
33+ //: o valor destes 3 bits pode variar de de 0 até 7 (111) a fim de representar
34+ //: a função na qual o GPIO está operando)
35+ //: @Member(GPFSEL3 Este membro representa o registrador GPFSEL3, o qual
36+ //: contém o quarto conjunto de campos de seleção de funções dos GPIO,
37+ //: abrangendo os GPIO de 30 a 39. Cada GPIO ocupa 3 bits neste registrador e
38+ //: o valor destes 3 bits pode variar de de 0 até 7 (111) a fim de representar
39+ //: a função na qual o GPIO está operando)
40+ //: @Member(GPFSEL4 Este membro representa o registrador GPFSEL4, o qual
41+ //: contém o quinto conjunto de campos de seleção de funções dos GPIO,
42+ //: abrangendo os GPIO de 40 a 49. Cada GPIO ocupa 3 bits neste registrador e
43+ //: o valor destes 3 bits pode variar de de 0 até 7 (111) a fim de representar
44+ //: a função na qual o GPIO está operando)
45+ //: @Member(GPFSEL5 Este membro representa o registrador GPFSEL5, o qual
46+ //: contém o sexto conjunto de campos de seleção de funções dos GPIO,
47+ //: abrangendo os GPIO de 50 a 53. Cada GPIO ocupa 3 bits neste registrador e
48+ //: o valor destes 3 bits pode variar de de 0 até 7 (111) a fim de representar
49+ //: a função na qual o GPIO está operando)
50+ //: @Member(GPLEV0 Este membro representa o registrador GPLEV0, o qual
51+ //: contém o primeiro conjunto de campos de níveis lógicos dos GPIO,
52+ //: abrangendo os GPIO de 0 a 31, ou seja, cada bit representa o estado de um
53+ //: GPIO. Caso o bit seja 0, o valor do nível lógico é zero e caso seja um o
54+ //: valor do nível lógio é 1)
55+ //: @Member(GPLEV1 Este membro representa o registrador GPLEV1, o qual
56+ //: contém o segundo conjunto de campos de níveis lógicos dos GPIO,
57+ //: abrangendo os GPIO de 32 a 53, ou seja, cada bit representa o estado de um
58+ //: GPIO. Caso o bit seja 0, o valor do nível lógico é zero e caso seja um o
59+ //: valor do nível lógio é 1)
1560 TPRSavedState = record
1661 GPFSEL0: UInt32;
1762 GPFSEL1: UInt32;
@@ -32,14 +77,15 @@
3277 //: Este subtipo pode ser usado em loops ou funções quando se quer limitar o
3378 //: acesso a apenas os pinos que são manipuláveis externamente
3479 TPRGPIONumberExposed = 0..27;
35- //: O Raspberry PI 3 expõe 40 pinos físicos e destes, apenas 28 estão
36- //: efetivamente associados a algum GPIO. Os outros 12 pinos físicos contém
37- //: GND e saídas de 5v e 3.3v
80+ //: Este subtipo representa os 40 pinos físicos do RPI. O Raspberry PI 3 expõe
81+ //: 40 pinos físicos e destes, apenas 28 estão efetivamente associados a algum
82+ //: GPIO. Os outros 12 pinos físicos contém GND e saídas de 5v e 3.3v.
83+ //: @SeeAlso(TPRGPIONumberExposed)
3884 TPRGPIOPhysicalPinNumber = 1..40;
39- //: Cada GPIO pode ter até seis funções alternativas além de entrada e saída.
40- //: As funções alternativas Alt0 a Alt5 dependem de cada GPIO e a tabela nas
41- //: páginas 102 e 103 do datasheet mostram cada uma delas. Esta enumeração
42- //: lista todos os possíveis modos dos GPIOs
85+ //: Esta enumeração lista todos os possíveis modos dos GPIOs. Cada GPIO pode
86+ //: ter até seis funções alternativas além de entrada e saída. As funções
87+ //: alternativas Alt0 a Alt5 dependem de cada GPIO e a tabela nas páginas 102
88+ //: e 103 do datasheet mostram cada uma delas.
4389 //: @value(prgmInput Um GPIO está neste modo para poder aceitar entrada de
4490 //: dados (níveis lógicos))
4591 //: @value(prgmOutput Um GPIO está neste modo para prover saída de deados
@@ -51,40 +97,48 @@
5197 //: @value(prgmAlt4 Habilita o modo alternativo 4 para o GPIO)
5298 //: @value(prgmAlt5 Habilita o modo alternativo 5 para o GPIO)
5399 TPRGPIOMode = (prgmInput,prgmOutput,prgmAlt5,prgmAlt4,prgmAlt0,prgmAlt1,prgmAlt2,prgmAlt3);
54- //: Existem seis registradores GPFSEL, numerados de 0 a 5, dentre os conjuntos
55- //: de registradores de GPIO. Este subtipo define um range fixo de 0 a 5, o
56- //: qual é usado nas funções que manipuluam os registradores GPFSEL
100+ //: Este subtipo define um range fixo de 0 a 5, o qual é usado nas funções que
101+ //: manipuluam os registradores GPFSEL. Existem seis registradores GPFSEL,
102+ //: numerados de 0 a 5, dentre os conjuntos de registradores de GPIO
57103 TPRGPIOModeBank = 0..5;
58- //: Cada GPIO possui um "resitor pull" que serve para garantir um nível lógico
59- //: inicial consistente quando o modo de operação de um GPIO é prgmInput, ou
60- //: seja, quando um GPIO está configurado para entrada de dados
61- //: @value(prgprOff Desabilita qualquer resistor de pull para o GPIO. Se o
104+ //: Esta enumeração representa os possíveis estados dos "resistores pull"
105+ //: associados a cada GPIO. Cada GPIO possui um "resitor pull" que serve para
106+ //: garantir um nível lógico inicial consistente quando o modo de operação de
107+ //: um GPIO é @Link(prgmInput), ou seja, quando um GPIO está configurado para
108+ //: entrada de dados.
109+ //: @Value(prgprOff Desabilita qualquer resistor de pull para o GPIO. Se o
62110 //: GPIO não estiver sendo usado como entrada de dados, é seguro manter o
63111 //: resistor de pull desligado. O estado do GPIO quando um resistor pull não
64112 //: está sendo usado é chamado de floating (flutuante), porque a entrada de
65- //: dados fica alternando aleatoriamente entre prglLow e prglHigh e é
66- //: justamente por este motivo, que sempre se deve usar um resistor pull
67- //: quando o GPIO for usado como entrada de dados, pois queremos saber com
68- //: exatidão quando ele ficará em um nível lógico específico)
69- //: @value(prgprDown Habilita o resistor "Pull Down", o qual força um nível
70- //: lógico zero (prglLow) inicial. Usando esta configuração é garantido que o
71- //: valor lido do GPIO seja zero (prglLow), até que, por algum agente externo,
72- //: ele se torne 1 (prglHigh). Se você deseja detectar uma mudança de estado
73- //: lógico de prglLow para prglHigh em um GPIO, o resistor pull deste GPIO
74- //: precisa estar configurado como prgprDown. O agente externo pode ser, por
75- //: exemplo, um botão que, quando pressionado, conecta 3.3v ao GPIO, o qual,
76- //: antes do pressionamento tinha nível lógico 0 e após o pressionamento tem
77- //: nível lógico 1)
78- //: @value(prgprUp Habilita o resistor "Pull Up", o qual força um nível
79- //: lógico 1 (prglHigh) inicial. Usando esta configuração é garantido que o
80- //: valor lido do GPIO seja 1 (prglHigh), até que, por algum agente externo,
81- //: ele se torne 0 (prglLow). Se você deseja detectar uma mudança de estado
82- //: lógico de prglHigh para prglLow em um GPIO, o resistor pull deste GPIO
83- //: precisa estar configurado como prgprUp. O agente externo pode ser, por
84- //: exemplo, um botão que, quando pressionado, conecta GND ao GPIO, o qual,
85- //: antes do pressionamento tinha nível lógico 1 e após o pressionamento tem
86- //: nível lógico 0)
113+ //: dados fica alternando aleatoriamente entre @Link(prglLow) e
114+ //: @Link(prglHigh) e é justamente por este motivo, que sempre se deve usar um
115+ //: resistor pull quando o GPIO for usado como entrada de dados, pois queremos
116+ //: saber com exatidão quando ele ficará em um nível lógico específico)
117+ //: @Value(prgprDown Habilita o resistor "Pull Down", o qual força um nível
118+ //: lógico zero (@Link(prglLow)) inicial. Usando esta configuração é garantido
119+ //: que o valor lido do GPIO seja zero (@Link(prglLow)), até que, por algum
120+ //: agente externo, ele se torne 1 (@Link(prglHigh)). Se você deseja detectar
121+ //: uma mudança de estado lógico de @Link(prglLow) para @Link(prglHigh) em um
122+ //: GPIO, o resistor pull deste GPIO precisa estar configurado como prgprDown.
123+ //: O agente externo pode ser, por exemplo, um botão que, quando pressionado,
124+ //: conecta 3.3v ao GPIO, o qual, antes do pressionamento tinha nível lógico 0
125+ //: e após o pressionamento tem nível lógico 1)
126+ //: @Value(prgprUp Habilita o resistor "Pull Up", o qual força um nível
127+ //: lógico 1 (@Link(prglHigh)) inicial. Usando esta configuração é garantido
128+ //: que o valor lido do GPIO seja 1 (@Link(prglHigh)), até que, por algum
129+ //: agente externo, ele se torne 0 (@Link(prglLow)). Se você deseja detectar
130+ //: uma mudança de estado lógico de @Link(prglHigh) para @Link(prglLow) em um
131+ //: GPIO, o resistor pull deste GPIO precisa estar configurado como prgprUp. O
132+ //: agente externo pode ser, por exemplo, um botão que, quando pressionado,
133+ //: conecta GND ao GPIO, o qual, antes do pressionamento tinha nível lógico 1
134+ //: e após o pressionamento tem nível lógico 0)
135+ //: @SeeAlso(TPRGPIOLevel)
87136 TPRGPIOPullRegister = (prgprOff,prgprDown,prgprUp);
137+ //: Esta enumeração representa os dois possíveis níveis lógicos
138+ //: @Value(prglLow Representa o nível lógico 0, e convenientemente tem valor
139+ //: ordinal igual a zero dentro da enumeração)
140+ //: @Value(prglHigh Representa o nível lógico 1, e convenientemente tem valor
141+ //: ordinal igual a um dentro da enumeração)
88142 TPRGPIOLevel = (prglLow,prglHigh);
89143 TPRGPIOLevelBank = 0..1;
90144
@@ -519,11 +573,11 @@
519573 //: estende a classe TCustomPasRipherals, introduzindo métodos e propriedades
520574 //: exclusivas para trabalhar com o ADS1115, um conversor analógico-digital de
521575 //: 16 bit muito popular
522- //: @member(Info Obtém de forma textual todas as configurações que esta
576+ //: @Member(Info Obtém de forma textual todas as configurações que esta
523577 //: biblioteca for capaz de obter. Ao exibir isso no console, não use a unit
524- //: crt, pois isso quebra a exibição de caracteres de desenho de caixa)
525- //: @member(State Salva ou recupera o estado dos GPIO quanto a seus modos
526- //: (funções) e níveis lógicos)
578+ //: "crt", pois isso quebra a exibição de caracteres de desenho de caixa)
579+ //: @Member(State Salva ou recupera o estado de todos os registradores do RPI.
580+ //: O estado dos registradores é colocado no record @Link(TPRSavedState))
527581 //: @member(GPIOModes Obtém e configura os valores de um dos seis
528582 //: registradores de modo de uma só vez. Cuidado a o configurar modos não
529583 //: compatíveis com certos GPIO, isso faz o RPI travar e talvez o danifique)
@@ -598,8 +652,20 @@
598652 destructor Destroy; override;
599653
600654 //: Retorna o número do GPIO correspondente ao pino físico informado
655+ //: @Param(APhysicalPinNumber Pino físico a partir do qual se quer saber o
656+ //: número do GPIO correspondente)
657+ //: @Returns(Retorna o número do GPIO correspondente ao número do pino
658+ //: físico informado no parâmetro)
659+ //: @SeeAlso(TPRGPIOPhysicalPinNumber)
660+ //: @SeeAlso(TPRGPIONumber)
601661 function P2G(APhysicalPinNumber: TPRGPIOPhysicalPinNumber): TPRGPIONumber;
602662 //: Retorna o número do pino físico correspondente ao GPIO informado
663+ //: @Param(AGPIONumber Número do GPIO a partir do qual se quer saber o
664+ //: número do pino físico correspondente)
665+ //: @Returns(Retorna o número do pino físico correspondente ao número do
666+ //: GPIO informado no parâmetro)
667+ //: @SeeAlso(TPRGPIOPhysicalPinNumber)
668+ //: @SeeAlso(TPRGPIONumber)
603669 function G2P(AGPIONumber: TPRGPIONumber): TPRGPIOPhysicalPinNumber;
604670 end;
605671
@@ -609,6 +675,14 @@
609675 //: ATENÇÃO: Esta classe e seus métodos não são "Thread Safe", o que significa
610676 //: que você deve tormar cuidado ao usá-la dentro de threads pois é possível
611677 //: que haja sobreposição de registradores durante sua escrita
678+ //: @Member(Clock Leia @inherited)
679+ //: @Member(GPIO Leia @inherited)
680+ //: @Member(PWM Leia @inherited)
681+ //: @Member(I2C Leia @inherited)
682+ //: @Member(GPIOLevels Leia @inherited)
683+ //: @Member(GPIOModes Leia @inherited)
684+ //: @Member(State Leia @inherited)
685+ //: @Member(Info Leia @inherited)
612686 TPasRipherals = class(TCustomPasRipherals)
613687 public
614688 property Clock;
Show on old repository browser