para q serve este codigo

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

para q serve este codigo

Mensagempor cristian » 05 Mar 2010 18:12

entao a lib q achei foi feita para ATmega644P controlar um display LCD do siemens S65

estou usando o mikroc mas tem algumas coisas q nao conheço por ex

Código: Selecionar todos
void s65_write_data(unsigned char data1){
LCD_CS = 0;
LCD_RS = 0;

sspbuf = data1;
while(!(SPSR & (1<<SPIF))) ESTA LINHA AQUI O Q FAZ
{

};

LCD_CS = 1;
}


esta linha
Código: Selecionar todos
sspbuf = data1;

tava
Código: Selecionar todos
SPDR = data1;

acertei na modificaçao codigo??

agora este



Código: Selecionar todos
while(!(SPSR & (1<<SPIF)))
{

};


eu nao entendo
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor ze » 06 Mar 2010 19:14

while(!(SPSR & (1<<SPIF))) ESTA LINHA AQUI O Q FAZ
tô sem o manual do atmega mas veja a intuição:
SPIF=constante=bit 15 (xute) do registro SPSR. Depois de transmitir TODO o byte SPDR, este bit muda de estado. Portanto o while fica esperando "enquanto" tal bit não muda de estado. tipo assim sei lá entende while(!(SPSR&0b0100000000000000)); No caso, espera o bit SPIF sair do zero. Na 2ª eu verifico e se tiver errado, corrijo o post. Traduza pro teu pic (que não sei qual é). sspbuf é pro i2c? não conheço o display, mas se for via uart tente o TXREG e while(!TXIF); (tô 100 manual lembra? portanto é só intuição MESMO)
abç
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor fabim » 07 Mar 2010 10:05

while(!(SPSR & (1<<SPIF)))
{

};
! antes da sentença significa negativo.
SPSR AND (1<< "numero do bit SPIF")

Ele diz: enquanto o BIT SPIF do registrador SPSR for = 0, fica em um loop infinito..

Foi só pra complementar o que o tesudo, e fáfázildo, Sr lellis escreveu.

Cristian, lembra que um dia o half te disse que:
if(dinheiro_bolco_cristian==0)
tambem pode ser escrito com sigla de negativo afirmativo?

if(!dinheiro_bolco_cristian)
observe, só de ter colocado o "!", eu estor perguntando.
Se cristian estiver quebrado então{ vai trabalhar} else{ vida boa sô }

tendeu tio ?

Se eu bem me lembro de um atmega que eu peguei pra ler o manuel, SPIF = transmissão finalizada.
Isso pode ser mudado para o sequinte.

Enquanto(!SSPBUF.bit_que_informa_fim_de_transmissao){


}

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

Mensagempor cristian » 07 Mar 2010 10:14

meu sobrinho "Fabim" eu sei do uso do "!"

fiqeui na duvida do pq rotacionar " 1<< spif "

ele declarou q spif é 7

nao seria bem mais facil testar o bit como vc falou ...
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor fabim » 07 Mar 2010 10:27

cristian escreveu:meu sobrinho "Fabim" eu sei do uso do "!"

fiqeui na duvida do pq rotacionar " 1<< spif "

ele declarou q spif é 7

nao seria bem mais facil testar o bit como vc falou ...


titio, se você sabe então porque pergunta ?
Ta com algum tipo de tik nervoso ? pergunta, pergunta, pergunta..

SE pega 1 << 7 vezes.. = registrador.F7,......
Só que como você não sabe, muitissimos compiladores nao aceitam acesso direto a bits, igual mikroC por exemplo.
REGISTRADOR.BIT = tal.

Aê, se vois nuce, usar a diretiva de rotação na verdade dependendo do nivel de inteligência do fuck compilador, ele não vai rotacionar nada, ele vai apenas substituir o valor.

SPSR & (1<<SPIF)
it´s the same:
SPSR & (0b10000000)

E você ainda vai estar usando diretivas ANSI, e não vai precisar ler no help, como se edita um BIT...
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Djalma Toledo Rodrigues » 07 Mar 2010 23:46

fabim escreveu: ... titio, se você sabe então porque pergunta ?
Ta com algum tipo de tik nervoso ? pergunta, pergunta, pergunta.....


:D :D :D

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22


Voltar para PIC

Quem está online

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

x