Classe TCustomPasRipherals

Unit

Declaração

type TCustomPasRipherals = class(TObject)

Descrição

Esta é a classe básica do PasRipherals. Ela implementa todos os métodos necessários para o acesso aos periféricos do Raspberry PI. Esta classe não deve ser usada diretamente em seus projetos, pois os métodos e propriedades úteis estão na seção protected, o que a torna inútil. Instancie a classe TPasRipherals ao invés desta classe.

Esta classe também pode ser usada como classe-base de outras classes especializadas, como por exemplo a classe TPRADS1115, que estende a classe TCustomPasRipherals, introduzindo métodos e propriedades exclusivas para trabalhar com o ADS1115, um conversor analógico-digital de 16 bit muito popular

Hierarquia

  • TObject
  • TCustomPasRipherals

Visão Geral

Campos

Private FPeripherals: PUInt32;
Private FRunningAsRoot: Boolean;

Métodos

Public constructor Create; virtual;
Public destructor Destroy; override;
Public function G2P(AGPIONumber: TGPIONumber): TGPIOPhysicalPinNumber;
Public function P2G(APhysicalPinNumber: TGPIOPhysicalPinNumber): TGPIONumber;
Protected function GetBitsValue(ARegister: UInt32; ABitIndex: UInt8; ABitsCount: UInt8 = 1): UInt32;
Private function BSC0BaseAddress: PUInt32;
Private function BSC1BaseAddress: PUInt32;
Private function ClockBaseAddress: PUInt32;
Private function GetBitsMask(ABitIndex: UInt8; ABitsCount: UInt8): UInt32;
Private function GetClock(AClockId: TClockId): TClock;
Private function GetGPIO(AGPIONumber: TGPIONumber): TGPIO;
Private function GetI2C(AController: TI2CController; ASlaveAddress: TI2CSlaveAddress): TI2C;
Private function GetInfo: String;
Private function GetLevels(ALevelBank: TPRGPIOLevelBank): UInt32;
Private function GetModes(AModeBank: TGPIOModeBank): UInt32;
Private function GetPWM(APWMChannel: TPWMChannel): TPWM;
Private function GetState: TSavedState;
Private function GPIOBaseAddress: PUInt32;
Private function PWMBaseAddress: PUInt32;
Protected procedure MicroSleep(AMicroSeconds: Uint16);
Protected procedure SetBitsValue(ARegister: PUInt32; AValue: UInt32; ABitIndex: UInt8; ABitsCount: UInt8 = 1);
Private procedure NanoSleep(ANanoSeconds: Uint16);
Private procedure PeripheralsBaseAddressAndSize(out ABaseAdddress: UInt32; out ASize: UInt32);
Private procedure SetLevels(ALevelBank: TPRGPIOLevelBank; ALevels: UInt32);
Private procedure SetModes(AModeBank: TGPIOModeBank; AModes: UInt32);
Private procedure SetState(ASavedState: TSavedState);

Properties

Protected property Clock[AClockId:TClockId]: TClock read GetClock;
Protected property GPIO[AGPIONumber:TGPIONumber]: TGPIO read GetGPIO;
Protected property GPIOLevels[ALevelBank:TPRGPIOLevelBank]: UInt32 read GetLevels write SetLevels;
Protected property GPIOModes[AModeBank:TGPIOModeBank]: UInt32 read GetModes write SetModes;
Protected property I2C[AController:TI2CController;ASlaveAddress:TI2CSlaveAddress]: TI2C read GetI2C;
Protected property Info: String read GetInfo;
Protected property PWM[APWMChannel:TPWMChannel]: TPWM read GetPWM;
Protected property State: TSavedState read GetState write SetState;

Descrição

Campos

Private FPeripherals: PUInt32;
 
Private FRunningAsRoot: Boolean;
 

Métodos

Public constructor Create; virtual;
 
Public destructor Destroy; override;
 
Public function G2P(AGPIONumber: TGPIONumber): TGPIOPhysicalPinNumber;

Retorna o número do pino físico correspondente ao GPIO informado

Parâmetros
AGPIONumber
Número do GPIO a partir do qual se quer saber o número do pino físico correspondente
Retornos

Retorna o número do pino físico correspondente ao número do GPIO informado no parâmetro

See also
TGPIOPhysicalPinNumber
Este tipo representa os 40 pinos físicos do RPI.
TGPIONumber
Este tipo define um subconjunto de números que variam de 0 a 53 e que serve para representar cada um dos 54 GPIOs disponíveis no Raspberry PI 3 (segundo o datasheet do BCM2837).
Public function P2G(APhysicalPinNumber: TGPIOPhysicalPinNumber): TGPIONumber;

Retorna o número do GPIO correspondente ao pino físico informado

Parâmetros
APhysicalPinNumber
Pino físico a partir do qual se quer saber o número do GPIO correspondente
Retornos

Retorna o número do GPIO correspondente ao número do pino físico informado no parâmetro

See also
TGPIOPhysicalPinNumber
Este tipo representa os 40 pinos físicos do RPI.
TGPIONumber
Este tipo define um subconjunto de números que variam de 0 a 53 e que serve para representar cada um dos 54 GPIOs disponíveis no Raspberry PI 3 (segundo o datasheet do BCM2837).
Protected function GetBitsValue(ARegister: UInt32; ABitIndex: UInt8; ABitsCount: UInt8 = 1): UInt32;

Use esta função para retornar o valor de um conjunto de bits dentro de um registrador de até 32 bits de tamanho

Private function BSC0BaseAddress: PUInt32;
 
Private function BSC1BaseAddress: PUInt32;
 
Private function ClockBaseAddress: PUInt32;
 
Private function GetBitsMask(ABitIndex: UInt8; ABitsCount: UInt8): UInt32;

Use esta função para obter uma máscara com as características indicadas

Private function GetClock(AClockId: TClockId): TClock;
 
Private function GetGPIO(AGPIONumber: TGPIONumber): TGPIO;
 
Private function GetI2C(AController: TI2CController; ASlaveAddress: TI2CSlaveAddress): TI2C;
 
Private function GetInfo: String;
 
Private function GetLevels(ALevelBank: TPRGPIOLevelBank): UInt32;
 
Private function GetModes(AModeBank: TGPIOModeBank): UInt32;
 
Private function GetPWM(APWMChannel: TPWMChannel): TPWM;
 
Private function GetState: TSavedState;
 
Private function GPIOBaseAddress: PUInt32;
 
Private function PWMBaseAddress: PUInt32;
 
Protected procedure MicroSleep(AMicroSeconds: Uint16);
 
Protected procedure SetBitsValue(ARegister: PUInt32; AValue: UInt32; ABitIndex: UInt8; ABitsCount: UInt8 = 1);

Use esta função para configurar o valor de um conjunto de bits dentro de um registrador de até 32 bits de tamanho

Private procedure NanoSleep(ANanoSeconds: Uint16);
 
Private procedure PeripheralsBaseAddressAndSize(out ABaseAdddress: UInt32; out ASize: UInt32);
 
Private procedure SetLevels(ALevelBank: TPRGPIOLevelBank; ALevels: UInt32);
 
Private procedure SetModes(AModeBank: TGPIOModeBank; AModes: UInt32);
 
Private procedure SetState(ASavedState: TSavedState);
 

Properties

Protected property Clock[AClockId:TClockId]: TClock read GetClock;

Obtém a referência a um Clock identificado pelo seu identificador

Protected property GPIO[AGPIONumber:TGPIONumber]: TGPIO read GetGPIO;

Obtém a referência a um GPIO pelo seu número

Protected property GPIOLevels[ALevelBank:TPRGPIOLevelBank]: UInt32 read GetLevels write SetLevels;

Obtém e configura os valores de um dos dois registradores de nível lógico de uma só vez

Protected property GPIOModes[AModeBank:TGPIOModeBank]: UInt32 read GetModes write SetModes;

Obtém e configura os valores de um dos seis registradores de modo de uma só vez. Cuidado a o configurar modos não compatíveis com certos GPIO, isso faz o RPI travar e talvez o danifique

Protected property I2C[AController:TI2CController;ASlaveAddress:TI2CSlaveAddress]: TI2C read GetI2C;

Obtém a referência a um dispositivo I2C identificado pelo controlador BSC e seu endereço escravo. Ao informar o endereço escravo como zero o campo ADDR do registrador A não será alterado, o que significa que qualquer operação subsequente será aplicada no último endereço informado. Apesar de isso ser válido, a fim de manter o código legível, é recomendável sempre informar o endereço, mesmo que isso se torne repetitivo. Esse aviso é ainda mais importante, caso se esteja acessando dois dispositivos simultaneamente no mesmo programa

Protected property Info: String read GetInfo;

Obtém de forma textual todas as configurações que esta biblioteca for capaz de obter. Ao exibir isso no console, não use a unit "crt", pois isso quebra a exibição de caracteres de desenho de caixa

Protected property PWM[APWMChannel:TPWMChannel]: TPWM read GetPWM;

Obtém a referência a um canal PWM específico

Protected property State: TSavedState read GetState write SetState;

Salva ou recupera o estado de todos os registradores do RPI. O estado dos registradores é colocado no record TPRSavedState


Gerado por PasDoc 0.15.0.