TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

MECATRONICA ARDUINO

Trabalho Escolar: MECATRONICA ARDUINO. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  24/8/2014  •  2.202 Palavras (9 Páginas)  •  542 Visualizações

Página 1 de 9

// ArduinoISP version 04m3

// Copyright (c) 2008-2011 Randall Bohn

// If you require a license, see

// http://www.opensource.org/licenses/bsd-license.php

//

// This sketch turns the Arduino into a AVRISP

// using the following arduino pins:

//

// pin name: not-mega: mega(1280 and 2560)

// slave reset: 10: 53

// MOSI: 11: 51

// MISO: 12: 50

// SCK: 13: 52

//

// Put an LED (with resistor) on the following pins:

// 9: Heartbeat - shows the programmer is running

// 8: Error - Lights up if something goes wrong (use red if that makes sense)

// 7: Programming - In communication with the slave

//

// 23 July 2011 Randall Bohn

// -Address Arduino issue 509 :: Portability of ArduinoISP

// http://code.google.com/p/arduino/issues/detail?id=509

//

// October 2010 by Randall Bohn

// - Write to EEPROM > 256 bytes

// - Better use of LEDs:

// -- Flash LED_PMODE on each flash commit

// -- Flash LED_PMODE while writing EEPROM (both give visual feedback of writing progress)

// - Light LED_ERR whenever we hit a STK_NOSYNC. Turn it off when back in sync.

// - Use pins_arduino.h (should also work on Arduino Mega)

//

// October 2009 by David A. Mellis

// - Added support for the read signature command

//

// February 2009 by Randall Bohn

// - Added support for writing to EEPROM (what took so long?)

// Windows users should consider WinAVR's avrdude instead of the

// avrdude included with Arduino software.

//

// January 2008 by Randall Bohn

// - Thanks to Amplificar for helping me with the STK500 protocol

// - The AVRISP/STK500 (mk I) protocol is used in the arduino bootloader

// - The SPI functions herein were developed for the AVR910_ARD programmer

// - More information at http://code.google.com/p/mega-isp

#include "pins_arduino.h"

#define RESET SS

#define LED_HB 9

#define LED_ERR 8

#define LED_PMODE 7

#define PROG_FLICKER true

#define HWVER 2

#define SWMAJ 1

#define SWMIN 18

// STK Definitions

#define STK_OK 0x10

#define STK_FAILED 0x11

#define STK_UNKNOWN 0x12

#define STK_INSYNC 0x14

#define STK_NOSYNC 0x15

#define CRC_EOP 0x20 //ok it is a space...

void pulse(int pin, int times);

void setup() {

Serial.begin(19200);

pinMode(LED_PMODE, OUTPUT);

pulse(LED_PMODE, 2);

pinMode(LED_ERR, OUTPUT);

pulse(LED_ERR, 2);

pinMode(LED_HB, OUTPUT);

pulse(LED_HB, 2);

}

int error=0;

int pmode=0;

// address for reading and writing, set by 'U' command

int here;

uint8_t buff[256]; // global block storage

#define beget16(addr) (*addr * 256 + *(addr+1) )

typedef struct param {

uint8_t devicecode;

uint8_t revision;

uint8_t progtype;

uint8_t parmode;

uint8_t polling;

uint8_t selftimed;

uint8_t lockbytes;

uint8_t fusebytes;

int flashpoll;

int eeprompoll;

int pagesize;

int eepromsize;

int flashsize;

}

parameter;

parameter param;

// this provides a heartbeat on pin 9, so you can tell the software is running.

uint8_t hbval=128;

int8_t hbdelta=8;

void heartbeat() {

if (hbval > 192) hbdelta = -hbdelta;

if (hbval < 32) hbdelta = -hbdelta;

hbval += hbdelta;

analogWrite(LED_HB, hbval);

delay(20);

}

...

Baixar como (para membros premium)  txt (11.9 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com