Fast I/O Definition - LPC2148

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Fast I/O Definition - LPC2148

Mensagempor alessandro » 25 Jan 2008 13:09

Alguém já usou esse recurso no Keil?

FIOSET, FIOCLR, FIODIR...

Para utilização do Fast "F", é necessários setar algo antes (REG)?

Fiz um teste oscilando um pino com FIOSET e FIOCLR, mas não oscilou nada, por isso gostaria de saber se é necessário setar mais alguma coisa ou estou fazendo algo errado aqui.


Alessandro
Alessandro
Avatar do usuário
alessandro
Byte
 
Mensagens: 278
Registrado em: 12 Out 2006 19:32

Mensagempor tcpipchip » 26 Jan 2008 12:46

Não é este tal de FIODIR, de DIRECTION ?
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor alessandro » 28 Jan 2008 12:02

tcpipchip, eu cheguei a definir esse registrador usando a diretiva FAST, mas mesmo assim não deu em nada....

Precisava ver se alguém aqui conseguir usar isso.
Alessandro
Avatar do usuário
alessandro
Byte
 
Mensagens: 278
Registrado em: 12 Out 2006 19:32

Mensagempor Kremer » 29 Jan 2008 07:44

Bom, como não tem código postado, seguem alguns checkpoints.

1) Você chegou a configurar os pinos como GPIO - Output?

2) Você está habilitando os clocks para o GPIO corretamente?

3) Você está configurando o registrador FIOMASK corretamente?


SDS
Avatar do usuário
Kremer
Nibble
 
Mensagens: 82
Registrado em: 25 Jul 2007 17:15
Localização: Florianópolis

Mensagempor proex » 29 Jan 2008 07:55

Aqui tem um exemplo tirado do datasheet. Em assembler mas serve pra ter uma idéia.

ldr r0,=0xe01fc1a0 /*register address--enable fast port*/
mov r1,#0x1
str r1,[r0] /*enable fast port0*/
ldr r1,=0xffffffff
ldr r0,=0x3fffc000 /*direction of fast port0*/
str r1,[r0]
ldr r0,=0xe0028018 /*direction of slow port 1*/
str r1,[r0]
ldr r0,=0x3fffc018 /*FIO0SET -- fast port0 register*
ldr r1,=0x3fffc01c /*FIO0CLR0 -- fast port0 register
ldr r2,=0xC0010000 /*select fast port 0.16 for toggle
ldr r3,=0xE0028014 /*IO1SET -- slow port1 register*/
ldr r4,=0xE002801C /*IO1CLR -- slow port1 register*/
ldr r5,=0x00100000 /*select slow port 1.20 for toggle*/
/*Generate 2 pulses on the fast port*/
str r2,[r0]
str r2,[r1]
str r2,[r0]
str r2,[r1]
/*Generate 2 pulses on the slow port*/
str r5,[r3]
str r5,[r4]
str r5,[r3]
str r5,[r4]
loop: b loop

O código acima gera 2 pulsos no I/O no modo Fast e, 2 pulsos no modo Slow.

Nao esqueça de configurar no MAM, o maior clock possível para os I/Os.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor alessandro » 29 Jan 2008 15:15

Realmente nas respostas anteriores existem ítens que não havia verificado. De volta aos testes farei as modificações.

Valeu!
Alessandro
Avatar do usuário
alessandro
Byte
 
Mensagens: 278
Registrado em: 12 Out 2006 19:32


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x