Mbed 4dGenie class
Dependents: Genie_Test 039847382-S3_DS1621_and_LCD_V1
This is a work in progress.
4dGenie class to use with 4dLCD screens that are using the genie environment.
There are still some rare occasions where the 4dLCD might crash, for now i have no solution to this except doing a reset of the 4dLCD.
Please make sure to have the most up to date PmmC loaded on the screen.
usage example :
Mbed4dGenie test program
#include "mbed.h" #include "mbed_genie.h" DigitalOut myled(LED1); /* The Mbed4dGenie class requires 3 parameters 1 - Tx pin 2 - Rx pin 3 - Reset pin */ Mbed4dGenie lcd4d(PTE0,PTE1,PTB9); int main() { int temp = 0; printf("Mbed Genie demo \n\r"); lcd4d.Start(); /* for example, in this loop we increment the thermometer0 object from 0 to 100 */ while(1) { if(temp >= 100) { temp = -1; } else { temp++; } lcd4d.genieWriteObject(GENIE_OBJ_LED_DIGITS,1,temp); myled = 1; wait(0.05); myled = 0; wait(0.05); } }
Diff: mbed_genie.cpp
- Revision:
- 5:3eb81723edc5
- Parent:
- 4:23c46eb6f0db
--- a/mbed_genie.cpp Sun Feb 23 18:01:55 2014 +0000 +++ b/mbed_genie.cpp Wed Jun 18 01:02:45 2014 +0000 @@ -7,6 +7,7 @@ Mbed4dGenie::Mbed4dGenie(PinName TxPin,PinName RxPin, PinName resetpin) : _screen(TxPin,RxPin) , _reset(resetpin) { //reset the 4d screen + _screen.baud(115200); _reset = 0; wait(0.25); _reset = 1; @@ -358,6 +359,8 @@ // help recover from errors. // void Mbed4dGenie::_handleError (void) { + _genieError = ERROR_NONE; + } @@ -424,6 +427,7 @@ default: // error, bad character, no other character // is acceptable in this state + pc.printf("error1\n\r"); return GENIE_EVENT_RXCHAR; } @@ -442,6 +446,7 @@ _geniePopLinkState(); _genieError = ERROR_NAK; _handleError(); + pc.printf("error2:NAK\n\r"); return GENIE_EVENT_RXCHAR; case GENIE_REPORT_EVENT: @@ -486,6 +491,7 @@ case GENIE_NAK: default: // error, bad character + pc.printf("error3\n\r"); return GENIE_EVENT_RXCHAR; // break; } @@ -530,6 +536,7 @@ } else { _genieError = ERROR_BAD_CS; _handleError(); + pc.printf("error4\n\r"); } } rxframe_count++;