Giessduino ver. 0.2

Ich habe es vollbracht. Meine erster, selbstgeloeteter Arduino-Clone ist fertig. Naja, fertig ist ein bischen verfrueht. Jetzt geht es daran die Ports ein bischen klug zusammen zu legen usw.

Auch werde ich mich jetzt wohl ein wenig intensiver mit C auseinandersetzen muessen.

/*
Example sketch for interfacing with the DS1302 timekeeping chip.

Copyright (c) 2009, Matt Sparks
All rights reserved.

http://quadpoint.org/projects/arduino-ds1302
*/
#include <stdio.h>
#include <string.h>
#include <DS1302.h>

/* Set the appropriate digital I/O pin connections */
uint8_t CE_PIN   = 5;
uint8_t IO_PIN   = 6;
uint8_t SCLK_PIN = 7;
int ledPin = 13;
/* Create buffers */
char buf[50];
char day[10];

/* Create a DS1302 object */
DS1302 rtc(CE_PIN, IO_PIN, SCLK_PIN);

void print_time()
{
/* Get the current time and date from the chip */
Time t = rtc.time();

/* Name the day of the week */
memset(day, 0, sizeof(day));  /* clear day buffer */
switch (t.day) {
case 1:
strcpy(day, „Sunday“);
break;
case 2:
strcpy(day, „Monday“);
break;
case 3:
strcpy(day, „Tuesday“);
break;
case 4:
strcpy(day, „Wednesday“);
break;
case 5:
strcpy(day, „Thursday“);
break;
case 6:
strcpy(day, „Friday“);
break;
case 7:
strcpy(day, „Saturday“);
break;
}

/* Format the time and date and insert into the temporary buffer */
snprintf(buf, sizeof(buf), „%s %04d-%02d-%02d %02d:%02d:%02d“,
day,
t.yr, t.mon, t.date,
t.hr, t.min, t.sec);

/* Print the formatted string to serial so we can see the time */
Serial.println(buf);

if (t.sec < 30)
{
digitalWrite(ledPin, HIGH);
}
else
{
digitalWrite(ledPin, LOW);
}

}

void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);

/* Initialize a new chip by turning off write protection and clearing the
clock halt flag. These methods needn’t always be called. See the DS1302
datasheet for details. */
rtc.write_protect(false);
rtc.halt(false);

/* Make a new time object to set the date and time */
/*   Tuesday, May 19, 2009 at 21:16:37.            */
Time t(2009, 5, 19, 21, 16, 37, 3);

/* Set the time and date on the chip */
rtc.time(t);
}

/* Loop and print the time every second */
void loop()
{
print_time();
delay(1000);
}

Advertisements

Eine Antwort to “Giessduino ver. 0.2”

  1. […] Wie bei der vorherigen Version versprochen, habe ich den Relaistreiber überarbeitet. Der schaltende Portpin wird jetzt durch […]

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: