INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
NTP zeitserver: UDP, TCP, DHCP
15.07.2014, 12:08
Beitrag #9
RE: NTP zeitserver: UDP, TCP, DHCP
Hallo Marcel,

was mir gerade auffällt ist diese Zeile:
Code:
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);  //für LCD SainSmart  //my
Warum stehen in der lcd-Instanz eigentlich sieben Parameter? Ist das nicht einer zu viel?

Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.07.2014, 13:00
Beitrag #10
RE: NTP zeitserver: UDP, TCP, DHCP
(15.07.2014 12:08)rkuehle schrieb:  Hallo Marcel,

was mir gerade auffällt ist diese Zeile:
Code:
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);  //für LCD SainSmart  //my
Warum stehen in der lcd-Instanz eigentlich sieben Parameter? Ist das nicht einer zu viel?

Grüße RK


hatte ich irgendwoher und hat bei anderer gelegenheit (LCD-sketch) auch funktioniert (glaub ich ;-) Kontrolle letzt: funktioniert NICHT, wird aber vom compiler nicht beanstandet). hab unlängst erst gesehen, dass die übliche konfig eben OHNE 13 lautet.
trotzdem gibts hardwaremäßig ein problem mit LCD + Ethernet.

nochmals:
1. original LCD-sketch (8,9,4,5,6,7) funktioniert auch mit aufgestecktem Ether-shield.
2. beim sketch UdpNtpClient_mit statischer IP funst das LCD, aber Ethernet kein mucks.

hier sicherheitshalber nocheinmal der code (DNS, GATE)
port 8888 ist freigegeben.
ping timeserver-IP ok
Code:
/*

Udp NTP Client

Get the time from a Network Time Protocol (NTP) time server
Demonstrates use of UDP sendPacket and ReceivePacket
For more on NTP time servers and the messages needed to communicate with them,
see http://en.wikipedia.org/wiki/Network_Time_Protocol

Warning: NTP Servers are subject to temporary failure or IP address change.
Plese check

    http://tf.nist.gov/tf-cgi/servers.cgi

if the time server used in the example didn't work.

created 4 Sep 2010
by Michael Margolis
modified 9 Apr 2012
by Tom Igoe

This code is in the public domain.
geändert 2014 my
*/

#include <SPI.h>        
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <LiquidCrystal.h> //my

LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //my
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {  
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {
  10, 0, 0, 180 };
byte gateway[] = {
  10,0,0,138};
byte mydns[] = {
  10,0,0,138};

unsigned int localPort = 8888;      // local port to listen for UDP packets

IPAddress timeServer(192,53,103,108); // ptbtime1.ptb.de NTP server  //my
// IPAddress timeServer(132, 163, 4, 102); // time-b.timefreq.bldrdoc.gov NTP server
// IPAddress timeServer(132, 163, 4, 103); // time-c.timefreq.bldrdoc.gov NTP server

const int NTP_PACKET_SIZE= 48; // NTP time stamp is in the first 48 bytes of the message

byte packetBuffer[ NTP_PACKET_SIZE]; //buffer to hold incoming and outgoing packets

// A UDP instance to let us send and receive packets over UDP
EthernetUDP Udp;

void setup()
{
// Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
   lcd.begin(16, 2);
   lcd.clear();
   lcd.write("NTP-Uhr my TCP...");


  // start Ethernet and UDP
  /*
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    for(;;)
      ;
  }
  */
  Ethernet.begin(mac, ip, mydns, gateway);
  Udp.begin(localPort);
}

void loop()
{
  sendNTPpacket(timeServer); // send an NTP packet to a time server

    // wait to see if a reply is available
  delay(1000);  
  if ( Udp.parsePacket() ) {  
    // We've received a packet, read the data from it
    Udp.read(packetBuffer,NTP_PACKET_SIZE);  // read the packet into the buffer

    //the timestamp starts at byte 40 of the received packet and is four bytes,
    // or two words, long. First, esxtract the two words:

    unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
    unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);  
    // combine the four bytes (two words) into a long integer
    // this is NTP time (seconds since Jan 1 1900):
    unsigned long secsSince1900 = highWord << 16 | lowWord;  
    Serial.print("Seconds since Jan 1 1900 = " );
    Serial.println(secsSince1900);              

    // now convert NTP time into everyday time:
    Serial.print("Unix time = ");
    // Unix time starts on Jan 1 1970. In seconds, that's 2208988800:
    const unsigned long seventyYears = 2208988800UL;    
    // subtract seventy years:
    unsigned long epoch = secsSince1900 - seventyYears;  
    // print Unix time:
    Serial.println(epoch);                              


    // print the hour, minute and second:
    Serial.print("The UTC time is ");       // UTC is the time at Greenwich Meridian (GMT)
    Serial.print((epoch  % 86400L) / 3600); // print the hour (86400 equals secs per day)
    Serial.print(':');  
    if ( ((epoch % 3600) / 60) < 10 ) {
      // In the first 10 minutes of each hour, we'll want a leading '0'
      Serial.print('0');
    }
    Serial.print((epoch  % 3600) / 60); // print the minute (3600 equals secs per minute)
    Serial.print(':');
    if ( (epoch % 60) < 10 ) {
      // In the first 10 seconds of each minute, we'll want a leading '0'
      Serial.print('0');
    }
    Serial.println(epoch %60); // print the second
  }
  // wait ten seconds before asking for the time again
  delay(10000);
}

// send an NTP request to the time server at the given address
unsigned long sendNTPpacket(IPAddress& address)
{
  // set all bytes in the buffer to 0
  memset(packetBuffer, 0, NTP_PACKET_SIZE);
  // Initialize values needed to form NTP request
  // (see URL above for details on the packets)
  packetBuffer[0] = 0b11100011;   // LI, Version, Mode
  packetBuffer[1] = 0;     // Stratum, or type of clock
  packetBuffer[2] = 6;     // Polling Interval
  packetBuffer[3] = 0xEC;  // Peer Clock Precision
  // 8 bytes of zero for Root Delay & Root Dispersion
  packetBuffer[12]  = 49;
  packetBuffer[13]  = 0x4E;
  packetBuffer[14]  = 49;
  packetBuffer[15]  = 52;

  // all NTP fields have been given values, now
  // you can send a packet requesting a timestamp:        
  Udp.beginPacket(address, 123); //NTP requests are to port 123
  Udp.write(packetBuffer,NTP_PACKET_SIZE);
  Udp.endPacket();
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.07.2014, 17:02 (Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2014 17:03 von rkuehle.)
Beitrag #11
RE: NTP zeitserver: UDP, TCP, DHCP
Hallo Marcel,

Zitat: original LCD-sketch (8,9,4,5,6,7) funktioniert auch mit aufgestecktem Ether-shield.
Das verwundert nicht wenn im Sketch keine Anbindung an das Ethernet-Shield drin ist.
Ich muss zur Sicherheit einfach nochmal fragen:
Wenn man den Thread durchgeht liest man sowohl vom W5100 (Standard Ethernet Shield) als auch vom ENC28J60 Board. Welches von beiden setzt du ein? Ich frage nur, weil beide unterschiedliche Libs benötigen. Schön wäre auch zu wissen welches LCD du konkret einsetzt (steht irgendein Chip-Typ auf der Rückseite? Dass es ein 16x2 ist sieht man ja).

Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.07.2014, 20:40 (Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2014 20:42 von igelstein.)
Beitrag #12
RE: NTP zeitserver: UDP, TCP, DHCP
(15.07.2014 17:02)rkuehle schrieb:  Hallo Marcel,

Zitat: original LCD-sketch (8,9,4,5,6,7) funktioniert auch mit aufgestecktem Ether-shield.
Das verwundert nicht wenn im Sketch keine Anbindung an das Ethernet-Shield drin ist.
Ich muss zur Sicherheit einfach nochmal fragen:
Wenn man den Thread durchgeht liest man sowohl vom W5100 (Standard Ethernet Shield) als auch vom ENC28J60 Board. Welches von beiden setzt du ein? Ich frage nur, weil beide unterschiedliche Libs benötigen. Schön wäre auch zu wissen welches LCD du konkret einsetzt (steht irgendein Chip-Typ auf der Rückseite? Dass es ein 16x2 ist sieht man ja).

Grüße RK

danke für Deine mühe.
den ENC28J60 hatte ich -offensichtlich zur verwirrung- "by the way", eigentlich nichtmehr zun thread gehörig, erwähnt.
also:
erdgeschoß: arduino uno, ein clon.: "XDRduino"
1. stock: Ethernet-shield W5100 mit SD; an der herkunft beiß ich mir seit tagen die zähne aus, sicher ebay, keinerlei diesbezügliche beschriftung.
2. stock: LCD keypad SainSmart, pin-anordnung 1,2...15,16; nicht wie manchmal 15,16,1,....14.
http://www.sainsmart.com/sainsmart-1602-...a1280.html
oh, da hab ich wohl das keypad übersehen? das braucht ja auch ressourcen?

wie auch immer: danke nochmal.
grüße
Marcel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.07.2014, 21:52
Beitrag #13
RE: NTP zeitserver: UDP, TCP, DHCP
Hallo Marcel,

Zitat:oh, da hab ich wohl das keypad übersehen? das braucht ja auch ressourcen?
Na da haben wir die Ursache des Problems:
Pins Keypad Shield: A0, D4-D10
Pins Ethernet Shield: A0,A1,D4,D10-D13
Das Problem ist der Pin D10. Beim LCD keypad wird dieser zur Helligkeitskontrolle genutzt. Vom Ethernet Shield wird D10 jedoch beim SPI zur Bereitstellung des SlaveSelect-Signals genutzt.
Das ist kaum gerade zu biegen. Es sei denn du benutzt einen Mega. Dann könntest du den D10 des Ethernet Shield auf den Pin 50 des Mega Mappen. Schon geht's.
Musst du jedoch beim Uno bleiben, gibt es hier eine "Lötlösung":
http://forum.arduino.cc/index.php?topic=96747.0 und dort die Antwort von dweston.

Hope it helps!

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.07.2014, 12:31 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2014 12:35 von igelstein.)
Beitrag #14
RE: NTP zeitserver: UDP, TCP, DHCP
ja, ein Mega steht bereit.
(15.07.2014 21:52)rkuehle schrieb:  Dann könntest du den D10 des Ethernet Shield auf den Pin 50 des Mega Mappen
das hatte ich (#8, gestern, 10:01) gemeint mit
Zitat: wie läßt sich ein pin in der IDE "umleiten"? zB um ein ENC28J60-board an den mega2560 anzupassen

... oder auch, wie Du vorschlägst, "den D10 des Ethernet Shield auf den Pin 50 des Mega Mappen".
konkret: ether 10 => Mega 50? wie sieht da die syntax aus?

und: 50: ist da nicht SPI-MISO fürs ether-shield?
bin halt noch ziemlich neu in dem g'schäft...
danke und grüße,
Marcel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.07.2014, 16:49
Beitrag #15
RE: NTP zeitserver: UDP, TCP, DHCP
Hallo Marcel,
Zitat:konkret: ether 10 => Mega 50? wie sieht da die syntax aus?
Nix mit Syntax. Gemeint habe ich die Verlegung des D10 Anschlusses des Ethernet Shield auf Pin 50 des Mega per Kabel. Wenn du einen Mega 2560 Rev. 3 hast, sollte der dies automatisch erkennen ohne am Code was ändern zu müssen.
Zitat:bin halt noch ziemlich neu in dem g'schäft...
Kein Problem, wir haben alle mal angefangen.
RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.07.2014, 16:10
Beitrag #16
RE: NTP zeitserver: UDP, TCP, DHCP
servus Ricardo,
nachdem es anscheinend per software nicht geht werd ich wohl auf das LCD verzichten. die serielle kontrolle ist ja gegeben, das LCD wäre halt bequemer.
die hauptsache ist gelöst, die TCP-verbindung zum zeitserver.
danke nochmal für die hilfe!
lg
Marcel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  DNS über DHCP sommerlatsch 0 577 23.04.2015 20:14
Letzter Beitrag: sommerlatsch
  DHCP Server mit Nano und Ether_28J60 Frederick4711 5 935 16.03.2015 13:46
Letzter Beitrag: Frederick4711
  DHCP Problem lwIP KK66 10 2.055 10.03.2015 08:07
Letzter Beitrag: KK66

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste