Dependencies:   mbed

Committer:
chris
Date:
Mon Nov 01 17:11:45 2010 +0000
Revision:
0:20fc0ecfb510
Child:
1:ce6a12e62219
Initial

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 0:20fc0ecfb510 11 DigitalOut led1(LED1);
chris 0:20fc0ecfb510 12 DigitalOut led2(LED2);
chris 0:20fc0ecfb510 13
chris 0:20fc0ecfb510 14 LocalFileSystem local("local");
chris 0:20fc0ecfb510 15 Serial pc(USBTX, USBRX);
chris 0:20fc0ecfb510 16
chris 0:20fc0ecfb510 17 AVR910 mbedISP(p5, p6, p7, p8); //mosi, miso, sclk, nreset.
chris 0:20fc0ecfb510 18
chris 0:20fc0ecfb510 19 int main() {
chris 0:20fc0ecfb510 20
chris 0:20fc0ecfb510 21
chris 0:20fc0ecfb510 22 int success = -1;
chris 0:20fc0ecfb510 23
chris 0:20fc0ecfb510 24 printf("\nAVR Programmer\nLooking for /local/program.avr\n");
chris 0:20fc0ecfb510 25
chris 0:20fc0ecfb510 26 FILE *fp = fopen("/local/program.avr", "rb");
chris 0:20fc0ecfb510 27
chris 0:20fc0ecfb510 28 if (fp == NULL) {
chris 0:20fc0ecfb510 29 pc.printf("Failed to open binary\n");
chris 0:20fc0ecfb510 30 } else {
chris 0:20fc0ecfb510 31 pc.printf("Binary file opened successfully\n");
chris 0:20fc0ecfb510 32 led1 = 1; // in progress
chris 0:20fc0ecfb510 33 success = mbedISP.program(fp);
chris 0:20fc0ecfb510 34 fclose(fp);
chris 0:20fc0ecfb510 35 remove("/local/program.avr"); // remove the file when we're done
chris 0:20fc0ecfb510 36 led2 = 1; // finished
chris 0:20fc0ecfb510 37 }
chris 0:20fc0ecfb510 38
chris 0:20fc0ecfb510 39 if (success < 0) {
chris 0:20fc0ecfb510 40 printf("Programming failed.\n");
chris 0:20fc0ecfb510 41 } else {
chris 0:20fc0ecfb510 42 printf("Programming was successful!\n");
chris 0:20fc0ecfb510 43 }
chris 0:20fc0ecfb510 44
chris 0:20fc0ecfb510 45 fclose(fp);
chris 0:20fc0ecfb510 46
chris 0:20fc0ecfb510 47
chris 0:20fc0ecfb510 48 while (1) {
chris 0:20fc0ecfb510 49 }
chris 0:20fc0ecfb510 50
chris 0:20fc0ecfb510 51 }