Chris Styles
/
m3pi_AVRprogrammer
main.cpp@1:ce6a12e62219, 2010-11-01 (annotated)
- 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?
User | Revision | Line number | New 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 | } |