A twist to the computer that landed man on the moon. More information can be found at http://hackaday.io/project/294-Open-Source-DSKY

Dependencies:   DS1302 keypad mbed

Hardware

Files at this revision

API Documentation at this revision

Comitter:
VivaPenguinos
Date:
Sun Feb 16 00:32:06 2014 +0000
Child:
1:24446776f0d2
Commit message:
DSKY Version 0.1

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Feb 16 00:32:06 2014 +0000
@@ -0,0 +1,136 @@
+/* Introduction
+Arduino DSKY
+This is a personal project used developed by penguinos to mix old school technology with a modern twist.
+Version 0.01: Feb. 4 2014
+    Switch platforms from Arduino to KL25Z by Freescale. Because of this, Revision number is resetted.
+    Major Revision to Code are being undertaken.
+
+Notable Credits:
+NASA! - Release of technical documentations regarding the AGC and DSKY
+Ron Burkley and Contributers of "Virtual AGC — AGS — LVDC — Gemini" - Providing Technical documentations, Source Code, explanations,
+    and refrences on other sites to make this project successful
+
+Warning: This may contain author crude language, random memes, and random thoughts.
+ */
+using namespace std;
+#include "mbed.h"
+
+//Declare Variables
+int shift = 0; // Shift Data
+// In the Arduino Version it uses a String. Will use an Int instead to see if this works on Mbed
+int Verb;
+int Noun;
+int Enter;
+int Set_GET_Seconds = 30; // Configure the Set Get in seconds. 1/100th of a second
+char Set_get_miliseconds = 10;
+char Set_Get_Seconds_Byte = 0;
+char Set_Get_Seconds_Byte2 = 0;
+char data = 0;
+char data2 = 0;
+char data3 = 0;
+char nibble[10] = // Holds variables for nibbles for number 0-9 in hexes. nibble ALL the things!
+    {0x00, 0x01, 0x02, 0x03, 0x04,
+     0x05, 0x06, 0x07, 0x08, 0x09};
+
+// Function Declaration
+void blinkAll(int amount, int delay);// Function that Blinks all LED
+//void ShiftingOut(char myDataOut);
+
+// Pin modes for each pins
+DigitalOut LatchPin(PTD4); //Pin for ST_CP of 74HC595 Pin # 12
+DigitalOut ClockPin(PTA12); //Pin for SH_CP of 74HC595 Pin # 11
+DigitalOut DataPin(PTA4);  //Pin for to DS of 74HC595 Pin # 14
+
+DigitalOut myled(LED1);
+Serial pc(USBTX, USBRX); // tx, rx Serial Output to PC Enabling this WILL consume resources. Use only for debug
+int main()
+{
+    wait(1);
+    pc.printf("Shifting");
+    blinkAll(4,1);
+    pc.printf("Done");
+    wait(1);
+    /*
+    //Serial pc(USBTX, USBRX); // tx, rx Serial Output to PC Enabling this WILL consume resources. Use only for debug
+    while(1) {
+        //pc.printf("on");
+        myled = 1;
+        wait(1);
+        //pc.printf("off");
+        myled = 0;
+        wait(1);   
+    }
+    */
+    return 0;
+}
+void compare(int Verb,int Noun, int Enter){
+    if (Verb == 16 && Noun == 36) {
+        //Configure GET
+        }
+    else if (Verb == 35 && Noun == 100) {
+        // Test Light
+        }
+    else if (Verb == 25 && Noun == 36) {
+        // Configure GET
+        }
+    else if (Verb == 37 && Enter == 00) {
+        // Idle Program
+        }
+    }
+
+void ShiftingOut(int myDataOut) {
+    // This shifts 8 bits out to the MSB first, The the rising edge of the clock, while clock idles low.
+    // Internal Fucntions
+    DataPin = 0;
+    ClockPin = 0;
+    int i= 0;
+    int pinState;
+    // Clears Everything within shift registers
+    DataPin = 0;
+    ClockPin = 0;
+    
+    for (i=7; i>= 0; i--) {
+        ClockPin = 0;
+        
+        // Value passed to my data out
+        if ( myDataOut & (1<<i)) {
+            pinState = 1;
+            myled = 1;
+            pc.printf("1");
+        }
+        else {
+            pinState = 0;
+            myled = 0;
+            pc.printf("0");
+        }
+        DataPin = pinState;
+        ClockPin = 1;
+        DataPin = 0;
+        }
+    ClockPin = 0;
+    DataPin = 1;
+    }
+
+//blinks the whole registered based on the number of times you want to blink with a certain delay 
+void blinkAll(int amount, int delay){
+    LatchPin = 0;
+    ShiftingOut(0);
+    ShiftingOut(0);
+    LatchPin = 1;
+    wait(0.2);
+    for (int x = 0; x < amount; x++) {
+        LatchPin = 0;
+        pc.printf("sending");
+        ShiftingOut(255);
+        ShiftingOut(255);
+        ShiftingOut(255);
+        LatchPin = 1;
+        wait(delay);
+        LatchPin = 0;
+        ShiftingOut(0);
+        ShiftingOut(0);
+        ShiftingOut(0);
+        LatchPin = 1;
+        wait(delay);
+        }
+    }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sun Feb 16 00:32:06 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/a9913a65894f
\ No newline at end of file