Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 0:a8090b59eb05
- Child:
- 1:ea0f7b1c5daf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Sun Nov 04 16:49:27 2012 +0000
@@ -0,0 +1,184 @@
+#include "mbed.h"
+#include "GLCD.h"
+
+#include "Bg_16bpp_t.h"
+#include "Bg_16bpp_l.h"
+#include "Bg_16bpp_r.h"
+#include "Bg_16bpp_b.h"
+#include "ARM_Ani_16bpp.h"
+
+//Host PC Baudrate (Virtual Com Port on USB)
+#define D_BAUDRATE 9600
+//#define D_BAUDRATE 57600
+
+//extern unsigned short driverCode;
+
+#define LANDTIGER 1
+
+// Variables for Heartbeat and Status monitoring
+#ifdef LANDTIGER
+DigitalOut myled1(P2_0);
+DigitalOut myled2(P2_1);
+DigitalOut myled3(P2_2);
+DigitalOut myled4(P2_3);
+DigitalOut myled5(P2_4);
+DigitalOut myled6(P2_5);
+DigitalOut myled7(P2_6);
+DigitalOut myled8(P2_7);
+
+
+//DigitalOut heartbeatLED(LED4);
+DigitalOut heartbeatLED(P3_26); //SD_PWR, active low
+//DigitalOut USB_Host_Power(P1_19); //USB Power, active low
+
+// Need this override function on non-mbed hardware to provide the MAC address.
+//
+// The mbed Ethernet library sets the MAC address by calling a weak function
+// extern "C" void mbed_mac_address(char * mac) to copy in a 6 Byte (12 character) MAC address.
+// This function performs a semihosting request to the mbed interface to get the serial number,
+// which contains a MAC address unique to every mbed device.
+// If you are using the eth library on your own board (i.e. not an mbed board),
+// you should implement your own extern "C" void mbed_mac_address(char * mac) function
+// to overwrite the existing one and avoid a call to the interface (which doesnt exist).
+
+
+extern "C" void mbed_mac_address(char * mac) {
+
+//mbed module clone
+// mac[0] = 0x00;
+// mac[1] = 0x02;
+// mac[2] = 0xF7;
+// mac[3] = 0xF0;
+// mac[4] = 0x56;
+// mac[5] = 0x90;
+
+//KPN Experia
+ mac[0] = 0x00;
+ mac[1] = 0x01;
+ mac[2] = 0xE3;
+ mac[3] = 0x55;
+ mac[4] = 0xA1;
+ mac[5] = 0xC7;
+
+};
+
+#else
+DigitalOut myled1(LED1);
+DigitalOut myled2(LED2);
+DigitalOut myled3(LED3);
+DigitalOut heartbeatLED(LED4);
+#endif
+
+
+// Host PC Communication channels
+Serial pc(USBTX, USBRX); // tx, rx
+
+// Variables for Heartbeat and Status monitoring
+Ticker heartbeat;
+bool heartbeatflag=false;
+
+Ticker LCD_Ani;
+
+void clear_screen() {
+//ANSI Terminal Commands
+ pc.printf("\x1B[2J");
+ pc.printf("\x1B[H");
+}
+
+void init_interfaces() {
+ // Init Host PC communication, default is 9600
+ pc.baud(D_BAUDRATE);
+
+ //Done, Tell me about it
+// show_LEDS();
+}
+
+
+// Heartbeat monitor
+void pulse() {
+ heartbeatLED = !heartbeatLED;
+
+#ifdef LANDTIGER
+// myled1 = heartbeatLED;
+// myled2 = heartbeatLED;
+// myled3 = heartbeatLED;
+// myled4 = heartbeatLED;
+
+// myled5 = !heartbeatLED;
+// myled6 = !heartbeatLED;
+// myled7 = !heartbeatLED;
+// myled8 = !heartbeatLED;
+
+#endif
+
+}
+
+void heartbeat_start() {
+ heartbeatLED = 1;
+ heartbeat.attach(&pulse, 0.5);
+}
+
+void heartbeat_stop() {
+ heartbeat.detach();
+}
+
+
+// LCD Animation
+void LCD_pulse() {
+ static int pic = 0;
+
+ if (pic++ > 8) pic = 0;
+ GLCD_Bmp (99, 99, 120, 45, (unsigned char*) &ARM_Ani_16bpp[pic*(120*45*2)]);
+}
+
+void LCD_Ani_start() {
+// LCD_Ani.attach(&LCD_pulse, 0.05);
+ LCD_Ani.attach(&LCD_pulse, 0.25);
+}
+
+void LCD_Ani_stop() {
+ LCD_Ani.detach();
+}
+
+
+
+int main() {
+ init_interfaces();
+
+ heartbeat_start();
+
+ clear_screen();
+
+ pc.printf("Hello World!\n\r");
+
+ GLCD_Init();
+ GLCD_Clear(White);
+// GLCD_Clear(Blue);
+// GLCD_Bmp( 0, 0, 320, 69, (unsigned char*) Bg_16bpp_t+70);
+// GLCD_Bmp( 0, 69, 4, 102, (unsigned char*) Bg_16bpp_l+70);
+// GLCD_Bmp(316, 69, 4, 102, (unsigned char*) Bg_16bpp_r+70);
+// GLCD_Bmp( 0, 171, 320, 69, (unsigned char*) Bg_16bpp_b+70);
+// GLCD_Bmp( 0, 171, 320, 69, (unsigned char*) Bg_16bpp_t+70);
+
+ GLCD_SetTextColor (Red);
+ GLCD_SetBackColor (White);
+ GLCD_DisplayString (0, 0, (unsigned char*) "Hi Willem");
+
+ LCD_Ani_start();
+
+ GLCD_drawRect (20, 20, 100, 100);
+
+ GLCD_SetTextColor (Green);
+ GLCD_drawHLine (10, 10, 50);
+ GLCD_drawVLine (30, 30, 50);
+
+ pc.printf("LCD Controller ID = 0x%04X\n\r", GLCD_DriverCode());
+
+ while(1) {
+ pc.printf("+");
+
+ wait(0.1);
+ };
+
+ pc.printf("Bye World!\n\r");
+}