Entrar    Registrar

LPC13xx.

Software e Hardware para linha ARM

Moderadores: guest2003, 51, Renie, gpenga

  • Autor
    Mensagem

LPC13xx.

Mensagempor fabim » 15 Jul 2015 09:41

Alguém já mexeu com esta desinfiliz família ?
Eu escolhi ele por ser pseudo teoricamente arquitetura CM3 que eu estava acostumado e me deparo com algo muito menos flexível.

Estou com uma baita dificuldade de compreender o controle dos ports, alguma alma caridosa poderia me dar um help ?


Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 4949
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: LPC13xx.

Mensagempor eletroinf » 15 Jul 2015 10:58

Qual é o problema?

Uma vez que mexi com LPC tinha um Reg que tu seta ele pra setar o pino e outro reg que tu seta ele pra zerar o pino... mas tinha um reg de acesso direto, set/reset tambien
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 728
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: LPC13xx.

Mensagempor fabim » 15 Jul 2015 11:20

Então touro sentado.

NOS LPC17XX, existe os reg's FIOSET e FIOCLR ou o próprio port.
Estas porqueiras de LPC13 não possuem isto, eles possuem um tal de MASK e o DATA, só que o mask são dezenas de kbytes 4096 bytes pra ser mais exato.
E o DATA são os bytes 4093,4094,4095,4096 formando uma INT.

Look at this:

GPIODATAMASK R/W 0x0000 to 0x3FF8 Port n data address masking register locations for pins PIOn_0 to PIOn_11 (see Section 9.5.1) n/a
GPIODATA R/W 0x3FFC Port n data register for pins PIOn_0 to PIOn_11 n/a


PÁGINA 133.



Abs, brigadão !!
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 4949
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: LPC13xx.

Mensagempor eletroinf » 15 Jul 2015 12:43

O Mask é só pra habilitar a interrupção do pino. Cada pino pode gerar interrupção, tendo um bit correspondente em GPIOIE.
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 728
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: LPC13xx.

Mensagempor fabim » 15 Jul 2015 14:07

Ispia isto !!

GPIOSetValue( LED_PORT, LED_BIT, 1 );

olha a função:

void GPIOSetValue( uint32_t portNum, uint32_t bitPosi, uint32_t bitVal )
{
LPC_GPIO[portNum]->MASKED_ACCESS[(1<<bitPosi)] = (bitVal<<bitPosi);
}

olha lá na pagina 133.

Deveras estranho !!
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 4949
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: LPC13xx.

Mensagempor eletroinf » 15 Jul 2015 16:48

Então, quando eu usei e hoje nos ARMs ST também, eu olho o include que tem as defines dos regs.
Eu mexo no bit que eu quero.
Entender essas funções cheias de chamadas a subfunções que dependem de dezenas de arquivos... é perda de tempo, ao meu ver.
Ve lá o reg que tu quer mexer, seta e/ou reseta o bit, simples assim.
Depois, no debug, fica bem melhor, não fica viajando em um monte de arquivos.
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 728
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: LPC13xx.

Mensagempor fabim » 17 Jul 2015 13:01

Curuzes, pessoal da NXP ferrou legal com esta anarquia.

Coisa mais chata do mundo, pois esta me lembrando pic !! :-(
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 4949
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: LPC13xx.

Mensagempor xultz » 17 Jul 2015 13:22

Não consegue ser pior que a maldita MLA da Microchip. Eu tava vendo a biblioteca de FileSystem, e tinha um comando que via a presença do cartão de memória. Fui tentar entender o que era aquele raio daquele comando, tinha uma estrutura que tinha uma série de ponteiros prá funções, que era chamado de uma estrutura de ponteiros para estruturas, e assim você ia até chegar na função. E o que o raio da função fazia? Lia o estado de um pino e retornava. Eu descobri isso depois de passar por uns 5 arquivos de código .c e .h, simplesmente ridículo. O fdp que escreveu aquela m**** provavelmente teve um orgasmo ao ver como ele é fodão e sabe escrever código complicado.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 2895
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Re: LPC13xx.

Mensagempor RobL » 20 Jul 2015 21:23

Fabim

Por que é estranho ?
O CM3 não possui instrução especializada para leitura ou escrita de bit !!!!
A forma utilizada para escrever / ler bits é semelhante a usada nos 51 há décadas.

Observe que o LPC17xx tem uma região chamada "peripheral bit band alias addressing". Isto permite criar registros para set/clear/test ou outra forma como a Freescale fez. Estes registros levam de alguma forma acessar a bit band region (talvez com microcódigo) e fica transparente ao programador.
Devido a bit band, as funções para escrita e leitura de bits são feitas com mais eficiência, em certos casos com duas ou três instruções (LPC17xx por exemplo). Possuindo a bit band, criaram esse registro "simplificador" do LPC17xx.
Na verdade, esse registro do LPC17xx, ele é semelhante, no resultado ao "Bit Manipulation Engine" da freescale. Cada fabricante tem o seu método. Isto vai permitir criar funções diferentes do LPC para escrita e leitura de bits.
O LPC13xx não tem essa região para I/O(tem somente para a RAM). Por isso não vai ter esse registro "simplificador" do LPC17xx. A forma de escrever e ler poderá ter funções diferentes e assim por diante em cada chip ARM de cada fabricante.

Quanto a extensão do endereço (enorme) é que essa área (bit band) para cada bit tem um registro de 32 bits alinhados no qual somente o bit 0 é usado, daí tem um mask.
Se quiser saber sobre o processo de escrita e leitura com bit band, tem que ler sobre o CM3. Isto não vai melhorar o seu programa, mas deve saciar suas boas necessidades nerdescas. As funções ficarão mais claras e você dormirá em paz.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Re: LPC13xx.

Mensagempor fabim » 28 Jul 2015 13:13

Poisé, Robl.
Justo, !!

Xuxu estou me sentindo um usuário de ccs !! :(
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 4949
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: LPC13xx.

Mensagempor B-EAGLE » 31 Jul 2015 09:33

fabim escreveu:Poisé, Robl.
Justo, !!

Xuxu estou me sentindo um usuário de ccs !! :(



kkkkk
B-EAGLE
Word
 
Mensagens: 838
Registrado em: 19 Out 2006 14:12
Localização: Campo Grande - MS

Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes

cron