Pages: 1 2 [3]   Go Down
Author Topic: RFID | ETHERNET | RTC  (Read 3513 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 3
Posts: 131
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

aqui foi de boa, só tive que comentar uma linha referente ao serial do 16u2...
Tô usando a versão 1.0, coloquei a pasta sdfat dentro de meusdocumentos/arduino/libraries, abri a IDE
fui em examples, no segundo separador que fica as bibliotecas instalados do usuario, abri o RawWrite e pedi para compilar...


* rawwrite.JPG (42.49 KB, 504x608 - viewed 14 times.)
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3221
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

O mais simples de reescrever sem biblioteca é mesmo o RTC.

Tens aqui links onde eles fazem o interface com o RTC sem biblioteca. Não sei até que ponto isto melhora a utilização de memória, mas é uma possibilidade.

http://lusorobotica.com/index.php?topic=681.0
http://bildr.org/2011/03/ds1307-arduino/
http://arduinotronics.blogspot.co.uk/2010/10/ds1307-real-time-clock-working.html

Para que é a função flashprint???

Porque é que lês o ficheiro sempre que o Arduino inicia?

Isto não é perfeito... mas porque é que não fazes assim:

Code:
...
char date_time[20];
digitalClockDisplay(date_time);
client.println(date_time);
...

Por:

Code:
digitalClockDisplay(&client);

void digitalClockDisplay( EthernetClient * cli) {
  clock.getTime();
  //HH:mm:ss|DD/mm/YYYY\0  20 digitos no pior caso.
  cli->print(clock.hour);
  cli->print(":");
  cli->print(clock.minute);
  cli->print(":");
  cli->print(clock.second);
  cli->print("|");
  cli->print(clock.dayOfMonth);
  cli->print("/");
  cli->print(clock.month);
  cli->print("/");
  cli->print((clock.year+2000));
}
No entanto, não percebo porque é que tens esta função e não copias este código que tenho aqui para a loop. Afinal de contas isto não é chamado em mais lado algum... logo não precisa de ser função.

procura pela função memset() para fazer o que a clearBufferArray faz.

A função getInfo diz que retorna String... e está a retornar char. Além de que tens para lá uma porrada de strings que provavelmente não precisas.
Já pensaste em ter um array que é temporário e é usado por todas as funções antes de ser enviado para o cartão ou pelo servidor web em vez de teres um array em todas as funções?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 80
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

O mais simples de reescrever sem biblioteca é mesmo o RTC.

Tens aqui links onde eles fazem o interface com o RTC sem biblioteca. Não sei até que ponto isto melhora a utilização de memória, mas é uma possibilidade.

http://lusorobotica.com/index.php?topic=681.0
http://bildr.org/2011/03/ds1307-arduino/
http://arduinotronics.blogspot.co.uk/2010/10/ds1307-real-time-clock-working.html

Para que é a função flashprint???

Porque é que lês o ficheiro sempre que o Arduino inicia?

Isto não é perfeito... mas porque é que não fazes assim:

Code:
...
char date_time[20];
digitalClockDisplay(date_time);
client.println(date_time);
...

Por:

Code:
digitalClockDisplay(&client);

void digitalClockDisplay( EthernetClient * cli) {
  clock.getTime();
  //HH:mm:ss|DD/mm/YYYY\0  20 digitos no pior caso.
  cli->print(clock.hour);
  cli->print(":");
  cli->print(clock.minute);
  cli->print(":");
  cli->print(clock.second);
  cli->print("|");
  cli->print(clock.dayOfMonth);
  cli->print("/");
  cli->print(clock.month);
  cli->print("/");
  cli->print((clock.year+2000));
}
No entanto, não percebo porque é que tens esta função e não copias este código que tenho aqui para a loop. Afinal de contas isto não é chamado em mais lado algum... logo não precisa de ser função.

procura pela função memset() para fazer o que a clearBufferArray faz.

A função getInfo diz que retorna String... e está a retornar char. Além de que tens para lá uma porrada de strings que provavelmente não precisas.
Já pensaste em ter um array que é temporário e é usado por todas as funções antes de ser enviado para o cartão ou pelo servidor web em vez de teres um array em todas as funções?

Só criei funções porque fica mais arrumado smiley smiley

Não estou muito preocupado com o "get info" pois ... futuramente essa função deverá consultar mysql para obter o Nome a partir do ID!
« Last Edit: April 04, 2013, 03:25:30 am by jot4p » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 80
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

aqui foi de boa, só tive que comentar uma linha referente ao serial do 16u2...
Tô usando a versão 1.0, coloquei a pasta sdfat dentro de meusdocumentos/arduino/libraries, abri a IDE
fui em examples, no segundo separador que fica as bibliotecas instalados do usuario, abri o RawWrite e pedi para compilar...


Não percebi onde está essa linha! .. dentro das libraries ?
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3221
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

O mais simples de reescrever sem biblioteca é mesmo o RTC.

Tens aqui links onde eles fazem o interface com o RTC sem biblioteca. Não sei até que ponto isto melhora a utilização de memória, mas é uma possibilidade.

http://lusorobotica.com/index.php?topic=681.0
http://bildr.org/2011/03/ds1307-arduino/
http://arduinotronics.blogspot.co.uk/2010/10/ds1307-real-time-clock-working.html

Para que é a função flashprint???

Porque é que lês o ficheiro sempre que o Arduino inicia?

Isto não é perfeito... mas porque é que não fazes assim:

Code:
...
char date_time[20];
digitalClockDisplay(date_time);
client.println(date_time);
...

Por:

Code:
digitalClockDisplay(&client);

void digitalClockDisplay( EthernetClient * cli) {
  clock.getTime();
  //HH:mm:ss|DD/mm/YYYY\0  20 digitos no pior caso.
  cli->print(clock.hour);
  cli->print(":");
  cli->print(clock.minute);
  cli->print(":");
  cli->print(clock.second);
  cli->print("|");
  cli->print(clock.dayOfMonth);
  cli->print("/");
  cli->print(clock.month);
  cli->print("/");
  cli->print((clock.year+2000));
}
No entanto, não percebo porque é que tens esta função e não copias este código que tenho aqui para a loop. Afinal de contas isto não é chamado em mais lado algum... logo não precisa de ser função.

procura pela função memset() para fazer o que a clearBufferArray faz.

A função getInfo diz que retorna String... e está a retornar char. Além de que tens para lá uma porrada de strings que provavelmente não precisas.
Já pensaste em ter um array que é temporário e é usado por todas as funções antes de ser enviado para o cartão ou pelo servidor web em vez de teres um array em todas as funções?

Só criei funções porque fica mais arrumado smiley smiley

Não estou muito preocupado com o "get info" pois ... futuramente essa função deverá consultar mysql para obter o Nome a partir do ID!

Se vais meter mais código aqui, acho que vais mesmo precisar de alterar a filosofia do que estás a fazer ou arranjar um micro muito maior. :/
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

BHZ, MG, Brazil
Offline Offline
Sr. Member
****
Karma: 10
Posts: 346
Android developer; Arduino enthusiast
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

O mais simples de reescrever sem biblioteca é mesmo o RTC.

EEPROMs e monitores de temperatura I2C são bem simples também. Eu reescrevi uma biblioteca para o DS1624 (digital temp. monitor), que a publiquei aqui no forum. Tem o link na minha assinatura.

Na verdade, trabalhar com I2C é bem simples, desde que se leia o datasheet.
« Last Edit: April 04, 2013, 06:21:01 am by AlxDroidDev » Logged

Learn to live: Live to learn.
Showing off my work: http://arduino.cc/forum/index.php/topic,126197.0.html

Pages: 1 2 [3]   Go Up
Jump to: