Dependencies:   mbed

Committer:
chris
Date:
Mon Nov 01 22:52:40 2010 +0000
Revision:
1:ce6a12e62219
Parent:
0:20fc0ecfb510
Added a #define to determine if the bin file is deleted

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chris 0:20fc0ecfb510 1 /**
chris 0:20fc0ecfb510 2 * Program an AVR with an mbed.
chris 0:20fc0ecfb510 3 */
chris 0:20fc0ecfb510 4
chris 0:20fc0ecfb510 5 // ATMega328 Datasheet:
chris 0:20fc0ecfb510 6 //
chris 0:20fc0ecfb510 7 // http://www.atmel.com/dyn/resources/prod_documents/doc8271.pdf
chris 0:20fc0ecfb510 8
chris 0:20fc0ecfb510 9 #include "AVR910.h"
chris 0:20fc0ecfb510 10
chris 1:ce6a12e62219 11 #define DELETE_BINARY 1
chris 1:ce6a12e62219 12
chris 0:20fc0ecfb510 13 DigitalOut led1(LED1);
chris 0:20fc0ecfb510 14 DigitalOut led2(LED2);
chris 0:20fc0ecfb510 15
chris 0:20fc0ecfb510 16 LocalFileSystem local("local");
chris 0:20fc0ecfb510 17 Serial pc(USBTX, USBRX);
chris 0:20fc0ecfb510 18
chris 0:20fc0ecfb510 19 AVR910 mbedISP(p5, p6, p7, p8); //mosi, miso, sclk, nreset.
chris 0:20fc0ecfb510 20
chris 0:20fc0ecfb510 21 int main() {
chris 0:20fc0ecfb510 22
chris 0:20fc0ecfb510 23
chris 0:20fc0ecfb510 24 int success = -1;
chris 0:20fc0ecfb510 25
chris 0:20fc0ecfb510 26 printf("\nAVR Programmer\nLooking for /local/program.avr\n");
chris 0:20fc0ecfb510 27
chris 0:20fc0ecfb510 28 FILE *fp = fopen("/local/program.avr", "rb");
chris 0:20fc0ecfb510 29
chris 0:20fc0ecfb510 30 if (fp == NULL) {
chris 0:20fc0ecfb510 31 pc.printf("Failed to open binary\n");
chris 0:20fc0ecfb510 32 } else {
chris 0:20fc0ecfb510 33 pc.printf("Binary file opened successfully\n");
chris 0:20fc0ecfb510 34 led1 = 1; // in progress
chris 0:20fc0ecfb510 35 success = mbedISP.program(fp);
chris 0:20fc0ecfb510 36 fclose(fp);
chris 1:ce6a12e62219 37 #ifdef DELETE_BINARY
chris 1:ce6a12e62219 38 remove("/local/program.avr"); // remove the file when we're done
chris 1:ce6a12e62219 39 #endif
chris 0:20fc0ecfb510 40 led2 = 1; // finished
chris 0:20fc0ecfb510 41 }
chris 0:20fc0ecfb510 42
chris 0:20fc0ecfb510 43 if (success < 0) {
chris 0:20fc0ecfb510 44 printf("Programming failed.\n");
chris 0:20fc0ecfb510 45 } else {
chris 0:20fc0ecfb510 46 printf("Programming was successful!\n");
chris 0:20fc0ecfb510 47 }
chris 0:20fc0ecfb510 48
chris 0:20fc0ecfb510 49 fclose(fp);
chris 0:20fc0ecfb510 50
chris 0:20fc0ecfb510 51
chris 0:20fc0ecfb510 52 while (1) {
chris 0:20fc0ecfb510 53 }
chris 0:20fc0ecfb510 54
chris 0:20fc0ecfb510 55 }