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.
Dependencies: Memory25L16_fast USBDevice mbed
Fork of BlackBoard_Firmware_MVP by
Diff: BB_Basic.cpp
- Revision:
- 5:07113abf18c0
- Parent:
- 4:e6e1642724d4
- Child:
- 6:2f4a272ab299
diff -r e6e1642724d4 -r 07113abf18c0 BB_Basic.cpp
--- a/BB_Basic.cpp Wed Jul 27 02:23:21 2016 +0000
+++ b/BB_Basic.cpp Thu Dec 22 22:16:34 2016 +0000
@@ -283,10 +283,10 @@
*/
int appendBuffer(int USBDataBuffer[], char memoryBuffer[], int bufferIndex)
{
- //pc.printf("\n");
+ //printf("\n");
int posIndex=0;
for(int i = 0; i < 64; i++) {
- //pc.printf("%x ",USBDataBuffer[i]);
+
memoryBuffer[bufferIndex+i]=USBDataBuffer[i];
posIndex++;
}
@@ -315,6 +315,7 @@
{
Timer t;
t.start(); //Start the timer
+ pc.printf("\nAddress: %i\n", Address);
int USBDataBuffer [64]; //Creat a buffer for recived data
char memoryBuffer [bufferSize]; //Create a memory buffer, to be sent to flash
int bufferIndex = 0; //points to the next available possition in memory
@@ -334,6 +335,7 @@
Address = mem.writeData(my_spi, memoryBuffer, Address, bufferSize);
} else {
pc.printf("\nCan not write to unerased slot.");
+ Address = mem.writeData(my_spi, memoryBuffer, Address, bufferSize);
}
}
pc.printf("\n pinnished writing");
@@ -344,6 +346,7 @@
}
/**
+ * Writes a single memorybuffer to memory
* receives 64 packets over usb and stores them in memooryBuffer. When memory Buffer is full it is
* written to memory at address.
* returns the next availible adsress;
@@ -440,7 +443,7 @@
*/
void prepImage(SPI my_spi, int slot, char name[])
{
- pc.printf("Slot: %i", slots[slot]);
+ pc.printf("\nSlot: %i", slots[slot]);
mem.blockErase(my_spi, slots[slot]); //erase the bottom block of the slot
mem.blockErase(my_spi, slots[slot]+0x10000); //erase the top block of the slot
//nameBlock(my_spi, name, slots[slot]+0x1FFF9); //Write the name of the layout to memory
@@ -468,18 +471,20 @@
/*###### EPD Write ######*/
-//Update the whole display with data from memory, starting at the address
+//Update the whole display with data from memory, starting at the
int EPD_Write(SPI mem_spi, int address)
{
- pc.printf("Address: %i", address);
+ pc.printf("\nAddress: %i", address);
//Setup the SPIs
SPI epd_spi = setupEPD(); //Creat a new SPI object to comunicate with the EPD
//Create local variables
- char sixtyBytes[60]; //Create a line buffer
+ int lineLengh = 60; //the length of the display in bytes
+ char sixtyBytes[lineLengh]; //Create a line buffer
+
//int line = 0; //counter to keep track of the current line
//int frameLine = 0; //counter to keep track of the line in the current frame
- int lineLengh = 60;
+
//led=!led;
//Timer t;
@@ -498,14 +503,14 @@
//loop throug 1440 lines
for(int j=0; j<1440; j++) {
+ //pc.printf("\n");
mem.readData(mem_spi, sixtyBytes, address, lineLengh); //Read the line, putt them in buffer return the next address to read from
- for(int i =0; i<60; i++) { //Read one byte from the buffer
+ for(int i =0; i<lineLengh; i++) { //Read one byte from the buffer
epd_spi.write(sixtyBytes[i]); //and write it to the display
- pc.printf("%i ",sixtyBytes[i]);
+ //pc.printf("%i%i%i%i%i%i%i%i",sixtyBytes[i]>>7&&1,sixtyBytes[i]>>6&&1,sixtyBytes[i]>>5&&1,sixtyBytes[i]>>4&&1,sixtyBytes[i]>>3&&1,sixtyBytes[i]>>2&&1,sixtyBytes[i]>>1&&1,sixtyBytes[i]&&1);
address++;
//byteCounter++;
}
- pc.printf("\n");
epd_spi.write(00); //Write a 0 at the end of each line
//wait_us(10000);
}
@@ -565,11 +570,11 @@
GlobalAddress = writeFrame(my_spi, USBDataBuffer[2]*65536+USBDataBuffer[3]*256+USBDataBuffer[4]); //Write the following data to the memory at 24 bit address usbDatabuffer[2-4]
break;
case 0x11:
- pc.printf("\n memory write");
+ pc.printf("\nPrep write");
prepImage(my_spi, USBDataBuffer[2], temp);//Prepare a slot in memory for an image
break;
case 0x12:
- pc.printf("\n Image write");
+ pc.printf("\nImage write");
writeImage(my_spi, USBDataBuffer[2]*65536+USBDataBuffer[3]*256+USBDataBuffer[4]);//Write the next 86400 bytes of data to the memory starting at 24 bit address usbDatabuffer[2-4]
break;
case 0x20: //If the recieved comand is a read instruction
