UNION SFR e STRUCT.

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Mensagempor fabim » 27 Nov 2009 12:24

Código: Selecionar todos
void set_hora(_u char hora, _u char minuto, _u char segundos){
 HOUR = hora;
 MIN  = minuto;
 SEC  = segundos;
 }

 void pega_hora(_u char *hora, _u char *minuto, _u char *segundos){

 *hora = (_u char )HOUR;
 *minuto = (_u char )MIN;
 *segundos = (_u char )SEC;
 }

 void set_data(_u short ano, _u char mes, _u char dia_mes, _u char dia_semana ){
 YEAR   = ano;        //seta ano
 MONTH   = mes;        //seta mes
 DOM      = dia_mes;   //seta dia mes
 DOW    = dia_semana;//dia da semana, 1 = domingo

  }

 void pega_data(_u short *ano, _u char *mes, _u char *dia_mes, _u char *dia_semana){

 *ano        = (_u short )YEAR;
 *mes        = (_u char  )MONTH;
 *dia_mes    = (_u char  )DOM;
 *dia_semana = (_u char  )DOW;
 }


6´s são muito gigenti, rs..
Virou uma mistureba, tava lembrando do ^ do pascal e fazendo do mesmo geito no C, só que com *..lllllll
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 tcpipchip » 27 Nov 2009 22:16

Djalma Toledo Rodrigues escreveu:Saudades do 8080 Fabim

HL Endereço da Ram , Atual Ponteiro

(HL) o conteúdo, o byte da Ram , do endereço apontado por HL

Incr L ---> endereço seguinte lógico

Incr H ---> página seguinte

além de H L usos outros .

DJ


O 8080 nao tinha instrução INCR :(
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor Djalma Toledo Rodrigues » 28 Nov 2009 00:08

tcpipchip escreveu:
O 8080 nao tinha instrução INCR :(


Ola Tcpipchip

Eu que me equivoquei com o Mnemônico

INRr Inclementa register

DECr Declementa register

INX H Incrementa H e L

DNX H Decrementa H e L

Obrigado

Excuse-me os demais.

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

Mensagempor msamsoniuk » 28 Nov 2009 00:09

nao seria mais interessante vc condensar as informacoes em uma unica estrutura e passar nas funcoes apenas o ponteiro dessa estrutura? algo como:

Código: Selecionar todos
struct time
{
  unsigned char h,m,s;
};

void get_hour(struct time *t)
{
  t->h = device.h;
  t->m = device.m;
  t->s = device.s;
}

void set_hour(struct time *t)
{
  device.h = t->h;
  device.m = t->m;
  device.s = t->s;
}

main()
{
  struct time t;

  get_time(&t);

  t.h = 23;
  t.m = 59;
  t.s = 59;

  set_hour(&t);

  while(1)
  {
    get_hour(&t);
    printf("%d:%d:%d\n",t.h,t.m,t.s);
    sleep(1);
  }
}


no lugar de passar varios ponteiros, vc passa apenas um e isso melhora a performance a medida q o numero de parametros aumenta. se um dia quiser extender a api e adicionar parametros, nao precisa mexer nas aplicacoes atuais, eh soh recompilar.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor msamsoniuk » 28 Nov 2009 00:21

para vc que curte essas coisas:

http://www.mactech.com/articles/mactech ... index.html

Djalma Toledo Rodrigues escreveu:
tcpipchip escreveu:
O 8080 nao tinha instrução INCR :(


Ola Tcpipchip

Eu que me equivoquei com o Mnemônico

INRr Inclementa register

DECr Declementa register

INX H Incrementa H e L

DNX H Decrementa H e L

Obrigado

Excuse-me os demais.

DJ
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Anterior

Voltar para ARM

Quem está online

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

x