20131104-184551
This commit is contained in:
Binary file not shown.
+20
-17
@@ -5,32 +5,35 @@
|
||||
* Author: netz
|
||||
*/
|
||||
|
||||
#define F_CPU 16000000
|
||||
#include "config.h"
|
||||
#include "Led.h"
|
||||
#include "Output.h"
|
||||
#include "Can.h"
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
|
||||
#include "Led.h"
|
||||
Led l;
|
||||
Output o;
|
||||
Can c;
|
||||
|
||||
int main(void)
|
||||
{
|
||||
Led l;
|
||||
DDRC |= (1<<PINC5);
|
||||
l.color(Led::YELLOW);
|
||||
CANMessage m;
|
||||
m.id = 0x0123;
|
||||
m.rtr = 0;
|
||||
m.length = 2;
|
||||
m.data[0] = 0xAF;
|
||||
m.data[1] = 0xFE;
|
||||
l.fade(Led::YELLOW, Led::RED, 10);
|
||||
while(1)
|
||||
{
|
||||
o.AudioOn();
|
||||
c.can_send_message(&m);
|
||||
_delay_ms(1);
|
||||
o.AudioOff();
|
||||
|
||||
l.rainbow(5);
|
||||
/*PORTC ^= (1<<PINC0);
|
||||
_delay_ms(150);
|
||||
PORTC ^= (1<<PINC0);
|
||||
|
||||
PORTC ^= (1<<PINC1);
|
||||
_delay_ms(150);
|
||||
PORTC ^= (1<<PINC1);
|
||||
|
||||
PORTC ^= (1<<PINC2);
|
||||
_delay_ms(150);
|
||||
PORTC ^= (1<<PINC2);*/
|
||||
|
||||
//PORTC ^= (1<<PINC5);
|
||||
}
|
||||
}
|
||||
@@ -157,12 +157,30 @@
|
||||
<Compile Include="Button.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Can.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Can.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="config.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Led.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Led.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="mcp2515_defs.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Output.cpp">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Output.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||
</Project>
|
||||
@@ -0,0 +1,336 @@
|
||||
/*
|
||||
* Can.cpp
|
||||
*
|
||||
* Created: 03.11.2013 22:09:17
|
||||
* Author: netz
|
||||
*/
|
||||
|
||||
#include "Can.h"
|
||||
|
||||
#define CANDDR_SPI DDRB
|
||||
#define CANPORT_SPI PORTB
|
||||
#define CANP_MISO PINB6
|
||||
#define CANP_MOSI PINB5
|
||||
#define CANP_SCK PINB7
|
||||
|
||||
#define CANDDR_CS DDRB
|
||||
#define CANPORT_CS PORTB
|
||||
#define CANP_CS PINB4
|
||||
|
||||
Can::Can() {
|
||||
init_pin();
|
||||
init_spi();
|
||||
init_can();
|
||||
}
|
||||
|
||||
void Can::init_pin() {
|
||||
//SPI Pins
|
||||
CANDDR_SPI |= (1<<CANP_SCK) | (1<<CANP_MOSI);
|
||||
CANPORT_SPI &= ~((1<<CANP_SCK) | (1<<CANP_MOSI) | (1<<CANP_MISO));
|
||||
|
||||
//CS Pins
|
||||
CANDDR_CS |= (1<<CANP_CS);
|
||||
CANPORT_CS |= (1<<CANP_CS);
|
||||
}
|
||||
|
||||
void Can::init_spi() {
|
||||
SPCR = (1<<SPE) | (1<<MSTR);
|
||||
SPSR = (1<<SPI2X);
|
||||
}
|
||||
|
||||
void Can::init_can() {
|
||||
|
||||
// MCP2515 per Software Reset zuruecksetzten,
|
||||
// danach ist der MCP2515 im Configuration Mode
|
||||
CANPORT_CS &= ~(1<<CANP_CS);
|
||||
spi_putc( SPI_RESET );
|
||||
_delay_ms(1);
|
||||
CANPORT_CS |= (1<<CANP_CS);
|
||||
|
||||
// etwas warten bis sich der MCP2515 zurueckgesetzt hat
|
||||
_delay_ms(10);
|
||||
|
||||
/*
|
||||
* Einstellen des Bit Timings
|
||||
*
|
||||
* Fosc = 16MHz
|
||||
* BRP = 7 (teilen durch 8)
|
||||
* TQ = 2 * (BRP + 1) / Fosc (=> 1 uS)
|
||||
*
|
||||
* Sync Seg = 1TQ
|
||||
* Prop Seg = (PRSEG + 1) * TQ = 1 TQ
|
||||
* Phase Seg1 = (PHSEG1 + 1) * TQ = 3 TQ
|
||||
* Phase Seg2 = (PHSEG2 + 1) * TQ = 3 TQ
|
||||
*
|
||||
* Bus speed = 1 / (Total # of TQ) * TQ
|
||||
* = 1 / 8 * TQ = 125 kHz
|
||||
*/
|
||||
|
||||
// BRP = 7
|
||||
mcp2515_write_register( CNF1, (1<<BRP0)|(1<<BRP1)|(1<<BRP2) );
|
||||
|
||||
// Prop Seg und Phase Seg1 einstellen
|
||||
mcp2515_write_register( CNF2, (1<<BTLMODE)|(1<<PHSEG11) );
|
||||
|
||||
// Wake-up Filter deaktivieren, Phase Seg2 einstellen
|
||||
mcp2515_write_register( CNF3, (1<<PHSEG21) );
|
||||
|
||||
// Aktivieren der Rx Buffer Interrupts
|
||||
mcp2515_write_register( CANINTE, (1<<RX1IE)|(1<<RX0IE) );
|
||||
|
||||
/*
|
||||
* Einstellen der Filter
|
||||
*/
|
||||
|
||||
// Buffer 0 : Empfangen aller Nachrichten
|
||||
mcp2515_write_register( RXB0CTRL, (1<<RXM1)|(1<<RXM0) );
|
||||
|
||||
// Buffer 1 : Empfangen aller Nachrichten
|
||||
mcp2515_write_register( RXB1CTRL, (1<<RXM1)|(1<<RXM0) );
|
||||
|
||||
// Alle Bits der Empfangsmaske loeschen,
|
||||
// damit werden alle Nachrichten empfangen
|
||||
mcp2515_write_register( RXM0SIDH, 0 );
|
||||
mcp2515_write_register( RXM0SIDL, 0 );
|
||||
mcp2515_write_register( RXM0EID8, 0 );
|
||||
mcp2515_write_register( RXM0EID0, 0 );
|
||||
|
||||
mcp2515_write_register( RXM1SIDH, 0 );
|
||||
mcp2515_write_register( RXM1SIDL, 0 );
|
||||
mcp2515_write_register( RXM1EID8, 0 );
|
||||
mcp2515_write_register( RXM1EID0, 0 );
|
||||
|
||||
/*
|
||||
* Einstellen der Pin Funktionen
|
||||
*/
|
||||
|
||||
// Deaktivieren der Pins RXnBF Pins (High Impedance State)
|
||||
mcp2515_write_register( BFPCTRL, 0 );
|
||||
|
||||
// TXnRTS Bits als Inputs schalten
|
||||
mcp2515_write_register( TXRTSCTRL, 0 );
|
||||
|
||||
// Device zurueck in den normalen Modus versetzten
|
||||
mcp2515_bit_modify( CANCTRL, 0xE0, 0);
|
||||
}
|
||||
|
||||
uint8_t Can::spi_putc( uint8_t data ) {
|
||||
// Sendet ein Byte
|
||||
SPDR = data;
|
||||
|
||||
// Wartet bis Byte gesendet wurde
|
||||
while( !( SPSR & (1<<SPIF) ) );
|
||||
|
||||
return SPDR;
|
||||
}
|
||||
|
||||
void Can::mcp2515_write_register( uint8_t adress, uint8_t data )
|
||||
{
|
||||
// /CS des MCP2515 auf Low ziehen
|
||||
CANPORT_CS &= ~(1<<CANP_CS);
|
||||
|
||||
spi_putc(SPI_WRITE);
|
||||
spi_putc(adress);
|
||||
spi_putc(data);
|
||||
|
||||
// /CS Leitung wieder freigeben
|
||||
CANPORT_CS |= (1<<CANP_CS);
|
||||
}
|
||||
|
||||
uint8_t Can::mcp2515_read_register(uint8_t adress)
|
||||
{
|
||||
uint8_t data;
|
||||
|
||||
// /CS des MCP2515 auf Low ziehen
|
||||
CANPORT_CS &= ~(1<<CANP_CS);
|
||||
|
||||
spi_putc(SPI_READ);
|
||||
spi_putc(adress);
|
||||
|
||||
data = spi_putc(0xff);
|
||||
|
||||
// /CS Leitung wieder freigeben
|
||||
CANPORT_CS |= (1<<CANP_CS);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void Can::mcp2515_bit_modify(uint8_t adress, uint8_t mask, uint8_t data)
|
||||
{
|
||||
// /CS des MCP2515 auf Low ziehen
|
||||
CANPORT_CS &= ~(1<<CANP_CS);
|
||||
|
||||
spi_putc(SPI_BIT_MODIFY);
|
||||
spi_putc(adress);
|
||||
spi_putc(mask);
|
||||
spi_putc(data);
|
||||
|
||||
// /CS Leitung wieder freigeben
|
||||
CANPORT_CS |= (1<<CANP_CS);
|
||||
}
|
||||
|
||||
uint8_t Can::can_send_message(CANMessage *p_message)
|
||||
{
|
||||
uint8_t status, address;
|
||||
|
||||
// Status des MCP2515 auslesen
|
||||
CANPORT_CS &= ~(1<<CANP_CS);
|
||||
spi_putc(SPI_READ_STATUS);
|
||||
status = spi_putc(0xff);
|
||||
spi_putc(0xff);
|
||||
CANPORT_CS |= (1<<CANP_CS);
|
||||
|
||||
/* Statusbyte:
|
||||
*
|
||||
* Bit Funktion
|
||||
* 2 TXB0CNTRL.TXREQ
|
||||
* 4 TXB1CNTRL.TXREQ
|
||||
* 6 TXB2CNTRL.TXREQ
|
||||
*/
|
||||
|
||||
if (bit_is_clear(status, 2)) {
|
||||
address = 0x00;
|
||||
}
|
||||
else if (bit_is_clear(status, 4)) {
|
||||
address = 0x02;
|
||||
}
|
||||
else if (bit_is_clear(status, 6)) {
|
||||
address = 0x04;
|
||||
}
|
||||
else {
|
||||
/* Alle Puffer sind belegt,
|
||||
Nachricht kann nicht verschickt werden */
|
||||
return 0;
|
||||
}
|
||||
|
||||
CANPORT_CS &= ~(1<<CANP_CS); // CS Low
|
||||
spi_putc(SPI_WRITE_TX | address);
|
||||
|
||||
// Standard ID einstellen
|
||||
spi_putc((uint8_t) (p_message->id>>3));
|
||||
spi_putc((uint8_t) (p_message->id<<5));
|
||||
|
||||
// Extended ID
|
||||
spi_putc(0x00);
|
||||
spi_putc(0x00);
|
||||
|
||||
uint8_t length = p_message->length;
|
||||
|
||||
if (length > 8) {
|
||||
length = 8;
|
||||
}
|
||||
|
||||
// Ist die Nachricht ein "Remote Transmit Request" ?
|
||||
if (p_message->rtr)
|
||||
{
|
||||
/* Ein RTR hat zwar eine Laenge,
|
||||
aber enthaelt keine Daten */
|
||||
|
||||
// Nachrichten Laenge + RTR einstellen
|
||||
spi_putc((1<<RTR) | length);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Nachrichten Laenge einstellen
|
||||
spi_putc(length);
|
||||
|
||||
// Daten
|
||||
for (uint8_t i=0;i<length;i++) {
|
||||
spi_putc(p_message->data[i]);
|
||||
}
|
||||
}
|
||||
CANPORT_CS |= (1<<CANP_CS); // CS auf High
|
||||
|
||||
asm volatile ("nop");
|
||||
|
||||
/* CAN Nachricht verschicken
|
||||
die letzten drei Bit im RTS Kommando geben an welcher
|
||||
Puffer gesendet werden soll */
|
||||
CANPORT_CS &= ~(1<<CANP_CS); // CS wieder Low
|
||||
if (address == 0x00) {
|
||||
spi_putc(SPI_RTS | 0x01);
|
||||
} else {
|
||||
spi_putc(SPI_RTS | address);
|
||||
}
|
||||
CANPORT_CS |= (1<<CANP_CS); // CS auf High
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t Can::can_get_message(CANMessage *p_message)
|
||||
{
|
||||
// Status auslesen
|
||||
uint8_t status = mcp2515_read_rx_status();
|
||||
|
||||
if (bit_is_set(status,6))
|
||||
{
|
||||
// Nachricht in Puffer 0
|
||||
|
||||
CANPORT_CS &= ~(1<<CANP_CS); // CS Low
|
||||
spi_putc(SPI_READ_RX);
|
||||
}
|
||||
else if (bit_is_set(status,7))
|
||||
{
|
||||
// Nachricht in Puffer 1
|
||||
|
||||
CANPORT_CS &= ~(1<<CANP_CS); // CS Low
|
||||
spi_putc(SPI_READ_RX | 0x04);
|
||||
}
|
||||
else {
|
||||
/* Fehler: Keine neue Nachricht vorhanden */
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
// Standard ID auslesen
|
||||
p_message->id = (uint16_t) spi_putc(0xff) << 3;
|
||||
p_message->id |= (uint16_t) spi_putc(0xff) >> 5;
|
||||
|
||||
spi_putc(0xff);
|
||||
spi_putc(0xff);
|
||||
|
||||
// Laenge auslesen
|
||||
uint8_t length = spi_putc(0xff) & 0x0f;
|
||||
p_message->length = length;
|
||||
|
||||
// Daten auslesen
|
||||
for (uint8_t i=0;i<length;i++) {
|
||||
p_message->data[i] = spi_putc(0xff);
|
||||
}
|
||||
|
||||
CANPORT_CS |= (1<<CANP_CS);
|
||||
|
||||
if (bit_is_set(status,3)) {
|
||||
p_message->rtr = 1;
|
||||
} else {
|
||||
p_message->rtr = 0;
|
||||
}
|
||||
|
||||
// Interrupt Flag loeschen
|
||||
if (bit_is_set(status,6)) {
|
||||
mcp2515_bit_modify(CANINTF, (1<<RX0IF), 0);
|
||||
} else {
|
||||
mcp2515_bit_modify(CANINTF, (1<<RX1IF), 0);
|
||||
}
|
||||
|
||||
return (status & 0x07);
|
||||
}
|
||||
|
||||
uint8_t Can::mcp2515_read_rx_status(void)
|
||||
{
|
||||
uint8_t data;
|
||||
|
||||
// /CS des MCP2515 auf Low ziehen
|
||||
CANPORT_CS &= ~(1<<CANP_CS);
|
||||
|
||||
spi_putc(SPI_RX_STATUS);
|
||||
data = spi_putc(0xff);
|
||||
|
||||
// Die Daten werden noch einmal wiederholt gesendet,
|
||||
// man braucht also nur eins der beiden Bytes auswerten.
|
||||
spi_putc(0xff);
|
||||
|
||||
// /CS Leitung wieder freigeben
|
||||
CANPORT_CS |= (1<<CANP_CS);
|
||||
|
||||
return data;
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Can.h
|
||||
*
|
||||
* Created: 03.11.2013 21:52:03
|
||||
* Author: netz
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include "mcp2515_defs.h"
|
||||
|
||||
#ifndef CAN_H_
|
||||
#define CAN_H_
|
||||
|
||||
//#define DDR_CS DDRB
|
||||
//#define PORT_CS PORTB
|
||||
//#define P_CS 2
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t id;
|
||||
uint8_t rtr;
|
||||
uint8_t length;
|
||||
uint8_t data[8];
|
||||
} CANMessage;
|
||||
|
||||
class Can {
|
||||
private:
|
||||
void init_spi();
|
||||
void init_can();
|
||||
void init_pin();
|
||||
uint8_t spi_putc( uint8_t data );
|
||||
void mcp2515_write_register( uint8_t adress, uint8_t data );
|
||||
uint8_t mcp2515_read_register(uint8_t adress);
|
||||
void mcp2515_bit_modify(uint8_t adress, uint8_t mask, uint8_t data);
|
||||
uint8_t mcp2515_read_rx_status(void);
|
||||
public:
|
||||
Can();
|
||||
uint8_t can_send_message(CANMessage *p_message);
|
||||
uint8_t can_get_message(CANMessage *p_message);
|
||||
};
|
||||
|
||||
|
||||
#endif /* CAN_H_ */
|
||||
@@ -1,4 +1,4 @@
|
||||
Button.d Button.o: .././Button.cpp \
|
||||
Button.d Button.o: .././Button.cpp .././config.h .././Led.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \
|
||||
@@ -10,10 +10,15 @@ Button.d Button.o: .././Button.cpp \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h \
|
||||
.././Output.h .././Can.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h \
|
||||
.././Led.h
|
||||
.././mcp2515_defs.h
|
||||
|
||||
.././config.h:
|
||||
|
||||
.././Led.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h:
|
||||
|
||||
@@ -37,10 +42,14 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h:
|
||||
|
||||
.././Output.h:
|
||||
|
||||
.././Can.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h:
|
||||
|
||||
.././Led.h:
|
||||
.././mcp2515_defs.h:
|
||||
|
||||
Binary file not shown.
@@ -1,33 +1,88 @@
|
||||
:100000000C942A000C9434000C9434000C943400AA
|
||||
:100010000C9434000C9434000C9434000C94340090
|
||||
:100020000C9434000C9434000C9434000C94340080
|
||||
:100030000C9434000C9434000C9434000C94340070
|
||||
:100040000C9434000C9434000C9434000C94340060
|
||||
:100050000C94340011241FBECFE5D8E0DEBFCDBF25
|
||||
:100060000E9436000C94F7000C940000CF93DF93AD
|
||||
:100070001F92CDB7DEB7CE0101960E944A00A59A25
|
||||
:1000800065E0CE0101960E94B600FACF84B3876086
|
||||
:1000900084BB08950E944600089585B3887F85BB80
|
||||
:1000A00085B3962F9370892B6470682B65BB089578
|
||||
:1000B0002F923F924F925F926F927F928F929F9278
|
||||
:1000C000AF92BF92CF92DF92EF92FF920F931F9366
|
||||
:1000D000CF93DF935C01862E942E690100E010E03F
|
||||
:1000E000212C312C422C532C2AC0C62DD72D682D03
|
||||
:1000F000C5010E944D002196CF3FD105C1F71016D2
|
||||
:10010000110654F4C42DD52D692DC5010E944D0052
|
||||
:100110002196C017D107C1F78FEFE81AF80AEC143F
|
||||
:10012000FD0421F407C07101602E712E0F3F1105EF
|
||||
:10013000E4F2E5CF0F5F1F4F0F3F110521F01C14B4
|
||||
:100140001D048CF3F7CFDF91CF911F910F91FF909A
|
||||
:10015000EF90DF90CF90BF90AF909F908F907F9067
|
||||
:100160006F905F904F903F902F900895EC01162F65
|
||||
:100170002AE030E044E050E067E070E00E94580080
|
||||
:10018000212F30E046E050E064E070E0CE010E94B4
|
||||
:100190005800212F30E042E050E066E070E0CE01F0
|
||||
:1001A0000E945800212F30E043E050E062E070E010
|
||||
:1001B000CE010E945800212F30E041E050E063E082
|
||||
:1001C00070E0CE010E945800212F30E045E050E061
|
||||
:1001D00061E070E0CE010E945800212F30E044E041
|
||||
:1001E00050E065E070E0CE010E945800C9CFF8945D
|
||||
:0201F000FFCF3F
|
||||
:100000000C942B000C9448000C9448000C9448006D
|
||||
:100010000C9448000C9448000C9448000C94480040
|
||||
:100020000C9448000C9448000C9448000C94480030
|
||||
:100030000C9448000C9448000C9448000C94480020
|
||||
:100040000C9448000C9448000C9448000C94480010
|
||||
:100050000C944800890011241FBECFE5D8E0DEBF14
|
||||
:10006000CDBF20E0A0E6B0E001C01D92A336B207EC
|
||||
:10007000E1F710E0C6E5D0E004C02297FE010E943F
|
||||
:10008000B102C435D107C9F70E944A000C94B502E9
|
||||
:100090000C940000CF93DF93CDB7DEB72C970FB64B
|
||||
:1000A000F894DEBF0FBECDBF66E082E690E00E940E
|
||||
:1000B000000283E291E09A8389831B8282E08C8331
|
||||
:1000C0008FEA8D838EEF8E832AE030E044E050E0AB
|
||||
:1000D00066E070E082E690E00E940B0281E690E02C
|
||||
:1000E0000E94AD02BE016F5F7F4F80E690E00E94EC
|
||||
:1000F0005D018FE99FE00197F1F700C0000081E604
|
||||
:1001000090E00E94AB0265E082E690E00E94690206
|
||||
:10011000E5CF82E690E00E94FD0181E690E00E943A
|
||||
:10012000A70280E690E00E944F01089587B3806A9D
|
||||
:1001300087BB88B38F7188BBBC9AC49A089580E549
|
||||
:100140008DB981E08EB908956FB9779BFECF8FB1DD
|
||||
:1001500008950F931F93CF93DF93EC01062F142F75
|
||||
:10016000C49862E00E94A400602FCE010E94A40007
|
||||
:10017000612FCE010E94A400C49ADF91CF911F91FC
|
||||
:100180000F910895FF920F931F93CF93DF93EC018C
|
||||
:10019000F62E042F122FC49865E00E94A4006F2D44
|
||||
:1001A000CE010E94A400602FCE010E94A400612F06
|
||||
:1001B000CE010E94A400C49ADF91CF911F910F91AC
|
||||
:1001C000FF900895CF93DF93EC01C49860EC0E94F8
|
||||
:1001D000A4008FE99FE00197F1F700C00000C49AE6
|
||||
:1001E0008FE39CE90197F1F700C0000047E06AE265
|
||||
:1001F000CE010E94A90040E969E2CE010E94A90057
|
||||
:1002000042E068E2CE010E94A90043E06BE2CE0129
|
||||
:100210000E94A90040E660E6CE010E94A90040E6E7
|
||||
:1002200060E7CE010E94A90040E060E2CE010E949A
|
||||
:10023000A90040E061E2CE010E94A90040E062E234
|
||||
:10024000CE010E94A90040E063E2CE010E94A90015
|
||||
:1002500040E064E2CE010E94A90040E065E2CE01E8
|
||||
:100260000E94A90040E066E2CE010E94A90040E0A1
|
||||
:1002700067E2CE010E94A90040E06CE0CE010E943E
|
||||
:10028000A90040E06DE0CE010E94A90020E040EE10
|
||||
:100290006FE0CE010E94C200DF91CF910895CF930D
|
||||
:1002A000DF93EC010E949600CE010E949F00CE01D8
|
||||
:1002B0000E94E200DF91CF910895AF92BF92CF925A
|
||||
:1002C000DF92EF92FF920F931F93CF93DF931F92D2
|
||||
:1002D000CDB7DEB78C016B01C49860EA0E94A40020
|
||||
:1002E0006FEFC8010E94A40089836FEFC8010E94CC
|
||||
:1002F000A400C49A898182FF0AC0898184FF09C051
|
||||
:10030000898186FD69C06894BB24B2F805C0B12C10
|
||||
:1003100003C06894BB24B1F8C4986B2D6064C80115
|
||||
:100320000E94A400F60180819181BC0176956795B9
|
||||
:100330007695679576956795C8010E94A400F601A9
|
||||
:1003400060816295660F607EC8010E94A40060E033
|
||||
:10035000C8010E94A40060E0C8010E94A400F60148
|
||||
:10036000A380F8E0FA1518F46894AA24A3F8F6011B
|
||||
:100370008281882331F06A2D6064C8010E94A40044
|
||||
:1003800019C06A2DC8010E94A400AA2099F0760124
|
||||
:10039000F4E0EF0EF11CAA948A2D90E00596C80EA9
|
||||
:1003A000D91EF70161917F01C8010E94A400EC14DD
|
||||
:1003B000FD04B9F7C49A0000C498B11005C061E803
|
||||
:1003C000C8010E94A40005C06B2D6068C8010E948E
|
||||
:1003D000A400C49A81E001C080E00F90DF91CF912A
|
||||
:1003E0001F910F91FF90EF90DF90CF90BF90AF9053
|
||||
:1003F000089584B3876084BB08950E94F90108952D
|
||||
:1004000085B3887F85BB85B3962F9370892B6470E5
|
||||
:10041000682B65BB08952F923F924F925F926F9227
|
||||
:100420007F928F929F92AF92BF92CF92DF92EF9284
|
||||
:10043000FF920F931F93CF93DF935C01862E942E30
|
||||
:10044000690100E010E0212C312C422C532C2AC0F1
|
||||
:10045000C62DD72D682DC5010E9400022196CF3FE1
|
||||
:10046000D105C1F71016110654F4C42DD52D692DF0
|
||||
:10047000C5010E9400022196C017D107C1F78FEF76
|
||||
:10048000E81AF80AEC14FD0421F407C07101602E8B
|
||||
:10049000712E0F3F1105E4F2E5CF0F5F1F4F0F3FA5
|
||||
:1004A000110521F01C141D048CF3F7CFDF91CF91BF
|
||||
:1004B0001F910F91FF90EF90DF90CF90BF90AF9082
|
||||
:1004C0009F908F907F906F905F904F903F902F9074
|
||||
:1004D00008951F93CF93DF93EC01162F262F30E062
|
||||
:1004E00046E050E064E070E00E940B02212F30E013
|
||||
:1004F00042E050E066E070E0CE010E940B02212F46
|
||||
:1005000030E043E050E062E070E0CE010E940B0278
|
||||
:10051000212F30E041E050E063E070E0CE010E9426
|
||||
:100520000B02212F30E045E050E061E070E0CE01A9
|
||||
:100530000E940B02212F30E044E050E065E070E0C3
|
||||
:10054000CE010E940B02DF91CF911F91089584B3D9
|
||||
:10055000806384BB0895AD980895AD9A0895EE0F19
|
||||
:0E056000FF1F0590F491E02D0994F894FFCF51
|
||||
:00000001FF
|
||||
|
||||
+996
-273
File diff suppressed because it is too large
Load Diff
+221
-86
@@ -2,16 +2,35 @@ Archive member included because of file (symbol)
|
||||
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o (exit)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
Button.o (__do_clear_bss)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
Button.o (__do_global_ctors)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
|
||||
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o) (__tablejump__)
|
||||
|
||||
Discarded input sections
|
||||
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
.text 0x00000000 0x0 Button.o
|
||||
.bss 0x00000000 0x0 Button.o
|
||||
.text 0x00000000 0x0 Can.o
|
||||
.bss 0x00000000 0x0 Can.o
|
||||
.text._ZN3Can21mcp2515_read_registerEh
|
||||
0x00000000 0x2c Can.o
|
||||
.text._ZN3Can22mcp2515_read_rx_statusEv
|
||||
0x00000000 0x2e Can.o
|
||||
.text._ZN3Can15can_get_messageEP10CANMessage
|
||||
0x00000000 0x124 Can.o
|
||||
.text 0x00000000 0x0 Led.o
|
||||
.bss 0x00000000 0x0 Led.o
|
||||
.text._ZN3Led6uninitEv
|
||||
0x00000000 0x2 Led.o
|
||||
.text 0x00000000 0x0 Output.o
|
||||
.bss 0x00000000 0x0 Output.o
|
||||
.text._ZN6Output8MotorOffEv
|
||||
0x00000000 0x4 Output.o
|
||||
.text._ZN6Output7MotorOnEv
|
||||
0x00000000 0x4 Output.o
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.mul
|
||||
@@ -25,6 +44,44 @@ Discarded input sections
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
|
||||
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
|
||||
.text.libgcc.mul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
|
||||
.text.libgcc.div
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
|
||||
.text.libgcc.prologue
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
|
||||
.text.libgcc.builtins
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
|
||||
.text.libgcc.fmul
|
||||
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
|
||||
|
||||
Memory Configuration
|
||||
|
||||
@@ -42,7 +99,9 @@ Linker script and memory map
|
||||
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
LOAD Button.o
|
||||
LOAD Can.o
|
||||
LOAD Led.o
|
||||
LOAD Output.o
|
||||
START GROUP
|
||||
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a
|
||||
END GROUP
|
||||
@@ -142,7 +201,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
||||
.rela.plt
|
||||
*(.rela.plt)
|
||||
|
||||
.text 0x00000000 0x1f2
|
||||
.text 0x00000000 0x56e
|
||||
*(.vectors)
|
||||
.vectors 0x00000000 0x54 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
0x00000000 __vector_default
|
||||
@@ -162,84 +221,129 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
||||
*(.lowtext*)
|
||||
0x00000054 __ctors_start = .
|
||||
*(.ctors)
|
||||
0x00000054 __ctors_end = .
|
||||
0x00000054 __dtors_start = .
|
||||
.ctors 0x00000054 0x2 Button.o
|
||||
0x00000056 __ctors_end = .
|
||||
0x00000056 __dtors_start = .
|
||||
*(.dtors)
|
||||
0x00000054 __dtors_end = .
|
||||
0x00000056 __dtors_end = .
|
||||
SORT(*)(.ctors)
|
||||
SORT(*)(.dtors)
|
||||
*(.init0)
|
||||
.init0 0x00000054 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
0x00000054 __init
|
||||
.init0 0x00000056 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
0x00000056 __init
|
||||
*(.init0)
|
||||
*(.init1)
|
||||
*(.init1)
|
||||
*(.init2)
|
||||
.init2 0x00000054 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
.init2 0x00000056 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
*(.init2)
|
||||
*(.init3)
|
||||
*(.init3)
|
||||
*(.init4)
|
||||
.init4 0x00000062 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
0x00000062 __do_clear_bss
|
||||
*(.init4)
|
||||
*(.init5)
|
||||
*(.init5)
|
||||
*(.init6)
|
||||
.init6 0x00000072 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
0x00000072 __do_global_ctors
|
||||
*(.init6)
|
||||
*(.init7)
|
||||
*(.init7)
|
||||
*(.init8)
|
||||
*(.init8)
|
||||
*(.init9)
|
||||
.init9 0x00000060 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
.init9 0x00000088 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
*(.init9)
|
||||
*(.text)
|
||||
.text 0x00000068 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
0x00000068 __vector_1
|
||||
0x00000068 __vector_12
|
||||
0x00000068 __bad_interrupt
|
||||
0x00000068 __vector_6
|
||||
0x00000068 __vector_3
|
||||
0x00000068 __vector_11
|
||||
0x00000068 __vector_13
|
||||
0x00000068 __vector_17
|
||||
0x00000068 __vector_19
|
||||
0x00000068 __vector_7
|
||||
0x00000068 __vector_5
|
||||
0x00000068 __vector_4
|
||||
0x00000068 __vector_9
|
||||
0x00000068 __vector_2
|
||||
0x00000068 __vector_15
|
||||
0x00000068 __vector_8
|
||||
0x00000068 __vector_14
|
||||
0x00000068 __vector_10
|
||||
0x00000068 __vector_16
|
||||
0x00000068 __vector_18
|
||||
0x00000068 __vector_20
|
||||
0x0000006c . = ALIGN (0x2)
|
||||
.text 0x00000090 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
0x00000090 __vector_1
|
||||
0x00000090 __vector_12
|
||||
0x00000090 __bad_interrupt
|
||||
0x00000090 __vector_6
|
||||
0x00000090 __vector_3
|
||||
0x00000090 __vector_11
|
||||
0x00000090 __vector_13
|
||||
0x00000090 __vector_17
|
||||
0x00000090 __vector_19
|
||||
0x00000090 __vector_7
|
||||
0x00000090 __vector_5
|
||||
0x00000090 __vector_4
|
||||
0x00000090 __vector_9
|
||||
0x00000090 __vector_2
|
||||
0x00000090 __vector_15
|
||||
0x00000090 __vector_8
|
||||
0x00000090 __vector_14
|
||||
0x00000090 __vector_10
|
||||
0x00000090 __vector_16
|
||||
0x00000090 __vector_18
|
||||
0x00000090 __vector_20
|
||||
0x00000094 . = ALIGN (0x2)
|
||||
*(.text.*)
|
||||
.text.main 0x0000006c 0x20 Button.o
|
||||
0x0000006c main
|
||||
.text.main 0x00000094 0x7e Button.o
|
||||
0x00000094 main
|
||||
.text._GLOBAL__sub_I_l
|
||||
0x00000112 0x1a Button.o
|
||||
.text._ZN3Can8init_pinEv
|
||||
0x0000012c 0x12 Can.o
|
||||
0x0000012c _ZN3Can8init_pinEv
|
||||
.text._ZN3Can8init_spiEv
|
||||
0x0000013e 0xa Can.o
|
||||
0x0000013e _ZN3Can8init_spiEv
|
||||
.text._ZN3Can8spi_putcEh
|
||||
0x00000148 0xa Can.o
|
||||
0x00000148 _ZN3Can8spi_putcEh
|
||||
.text._ZN3Can22mcp2515_write_registerEhh
|
||||
0x00000152 0x32 Can.o
|
||||
0x00000152 _ZN3Can22mcp2515_write_registerEhh
|
||||
.text._ZN3Can18mcp2515_bit_modifyEhhh
|
||||
0x00000184 0x40 Can.o
|
||||
0x00000184 _ZN3Can18mcp2515_bit_modifyEhhh
|
||||
.text._ZN3Can8init_canEv
|
||||
0x000001c4 0xda Can.o
|
||||
0x000001c4 _ZN3Can8init_canEv
|
||||
.text._ZN3CanC2Ev
|
||||
0x0000029e 0x1c Can.o
|
||||
0x0000029e _ZN3CanC2Ev
|
||||
0x0000029e _ZN3CanC1Ev
|
||||
.text._ZN3Can16can_send_messageEP10CANMessage
|
||||
0x000002ba 0x138 Can.o
|
||||
0x000002ba _ZN3Can16can_send_messageEP10CANMessage
|
||||
.text._ZN3Led4initEv
|
||||
0x0000008c 0x8 Led.o
|
||||
0x0000008c _ZN3Led4initEv
|
||||
0x000003f2 0x8 Led.o
|
||||
0x000003f2 _ZN3Led4initEv
|
||||
.text._ZN3LedC2Ev
|
||||
0x00000094 0x6 Led.o
|
||||
0x00000094 _ZN3LedC1Ev
|
||||
0x00000094 _ZN3LedC2Ev
|
||||
0x000003fa 0x6 Led.o
|
||||
0x000003fa _ZN3LedC1Ev
|
||||
0x000003fa _ZN3LedC2Ev
|
||||
.text._ZN3Led5colorEh
|
||||
0x0000009a 0x16 Led.o
|
||||
0x0000009a _ZN3Led5colorEh
|
||||
0x00000400 0x16 Led.o
|
||||
0x00000400 _ZN3Led5colorEh
|
||||
.text._ZN3Led4fadeEiii
|
||||
0x000000b0 0xbc Led.o
|
||||
0x000000b0 _ZN3Led4fadeEiii
|
||||
0x00000416 0xbc Led.o
|
||||
0x00000416 _ZN3Led4fadeEiii
|
||||
.text._ZN3Led7rainbowEh
|
||||
0x0000016c 0x82 Led.o
|
||||
0x0000016c _ZN3Led7rainbowEh
|
||||
0x000001ee . = ALIGN (0x2)
|
||||
0x000004d2 0x7c Led.o
|
||||
0x000004d2 _ZN3Led7rainbowEh
|
||||
.text._ZN6OutputC2Ev
|
||||
0x0000054e 0x8 Output.o
|
||||
0x0000054e _ZN6OutputC2Ev
|
||||
0x0000054e _ZN6OutputC1Ev
|
||||
.text._ZN6Output8AudioOffEv
|
||||
0x00000556 0x4 Output.o
|
||||
0x00000556 _ZN6Output8AudioOffEv
|
||||
.text._ZN6Output7AudioOnEv
|
||||
0x0000055a 0x4 Output.o
|
||||
0x0000055a _ZN6Output7AudioOnEv
|
||||
.text.libgcc 0x0000055e 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
|
||||
0x0000055e __tablejump2__
|
||||
0x00000562 __tablejump__
|
||||
0x0000056a . = ALIGN (0x2)
|
||||
*(.fini9)
|
||||
.fini9 0x000001ee 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
|
||||
0x000001ee _exit
|
||||
0x000001ee exit
|
||||
.fini9 0x0000056a 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
|
||||
0x0000056a _exit
|
||||
0x0000056a exit
|
||||
*(.fini9)
|
||||
*(.fini8)
|
||||
*(.fini8)
|
||||
@@ -258,17 +362,22 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
||||
*(.fini1)
|
||||
*(.fini1)
|
||||
*(.fini0)
|
||||
.fini0 0x000001ee 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
|
||||
.fini0 0x0000056a 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
|
||||
*(.fini0)
|
||||
0x000001f2 _etext = .
|
||||
0x0000056e _etext = .
|
||||
|
||||
.data 0x00800060 0x0 load address 0x000001f2
|
||||
.data 0x00800060 0x0 load address 0x0000056e
|
||||
0x00800060 PROVIDE (__data_start, .)
|
||||
*(.data)
|
||||
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
|
||||
.data 0x00800060 0x0 Button.o
|
||||
.data 0x00800060 0x0 Can.o
|
||||
.data 0x00800060 0x0 Led.o
|
||||
.data 0x00800060 0x0 Output.o
|
||||
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
|
||||
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
|
||||
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
|
||||
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
|
||||
*(.data*)
|
||||
*(.rodata)
|
||||
*(.rodata*)
|
||||
@@ -277,21 +386,25 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
||||
0x00800060 _edata = .
|
||||
0x00800060 PROVIDE (__data_end, .)
|
||||
|
||||
.bss 0x00800060 0x0
|
||||
.bss 0x00800060 0x3
|
||||
0x00800060 PROVIDE (__bss_start, .)
|
||||
*(.bss)
|
||||
.bss 0x00800060 0x3 Button.o
|
||||
0x00800060 c
|
||||
0x00800061 o
|
||||
0x00800062 l
|
||||
*(.bss*)
|
||||
*(COMMON)
|
||||
0x00800060 PROVIDE (__bss_end, .)
|
||||
0x000001f2 __data_load_start = LOADADDR (.data)
|
||||
0x000001f2 __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||
0x00800063 PROVIDE (__bss_end, .)
|
||||
0x0000056e __data_load_start = LOADADDR (.data)
|
||||
0x0000056e __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||
|
||||
.noinit 0x00800060 0x0
|
||||
0x00800060 PROVIDE (__noinit_start, .)
|
||||
.noinit 0x00800063 0x0
|
||||
0x00800063 PROVIDE (__noinit_start, .)
|
||||
*(.noinit*)
|
||||
0x00800060 PROVIDE (__noinit_end, .)
|
||||
0x00800060 _end = .
|
||||
0x00800060 PROVIDE (__heap_start, .)
|
||||
0x00800063 PROVIDE (__noinit_end, .)
|
||||
0x00800063 _end = .
|
||||
0x00800063 PROVIDE (__heap_start, .)
|
||||
|
||||
.eeprom 0x00810000 0x0
|
||||
*(.eeprom*)
|
||||
@@ -336,7 +449,9 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
||||
*(.comment)
|
||||
.comment 0x00000000 0x2f Button.o
|
||||
0x30 (size before relaxing)
|
||||
.comment 0x00000000 0x30 Can.o
|
||||
.comment 0x00000000 0x30 Led.o
|
||||
.comment 0x00000000 0x30 Output.o
|
||||
|
||||
.debug
|
||||
*(.debug)
|
||||
@@ -350,48 +465,66 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
||||
.debug_sfnames
|
||||
*(.debug_sfnames)
|
||||
|
||||
.debug_aranges 0x00000000 0x68
|
||||
.debug_aranges 0x00000000 0x120
|
||||
*(.debug_aranges)
|
||||
.debug_aranges
|
||||
0x00000000 0x20 Button.o
|
||||
0x00000000 0x28 Button.o
|
||||
.debug_aranges
|
||||
0x00000020 0x48 Led.o
|
||||
0x00000028 0x70 Can.o
|
||||
.debug_aranges
|
||||
0x00000098 0x48 Led.o
|
||||
.debug_aranges
|
||||
0x000000e0 0x40 Output.o
|
||||
|
||||
.debug_pubnames
|
||||
*(.debug_pubnames)
|
||||
|
||||
.debug_info 0x00000000 0x79b
|
||||
.debug_info 0x00000000 0x1b32
|
||||
*(.debug_info)
|
||||
.debug_info 0x00000000 0x24c Button.o
|
||||
.debug_info 0x0000024c 0x54f Led.o
|
||||
.debug_info 0x00000000 0x6b5 Button.o
|
||||
.debug_info 0x000006b5 0xdae Can.o
|
||||
.debug_info 0x00001463 0x4db Led.o
|
||||
.debug_info 0x0000193e 0x1f4 Output.o
|
||||
*(.gnu.linkonce.wi.*)
|
||||
|
||||
.debug_abbrev 0x00000000 0x34c
|
||||
.debug_abbrev 0x00000000 0x8d3
|
||||
*(.debug_abbrev)
|
||||
.debug_abbrev 0x00000000 0x14c Button.o
|
||||
.debug_abbrev 0x0000014c 0x200 Led.o
|
||||
.debug_abbrev 0x00000000 0x2d0 Button.o
|
||||
.debug_abbrev 0x000002d0 0x2fa Can.o
|
||||
.debug_abbrev 0x000005ca 0x1eb Led.o
|
||||
.debug_abbrev 0x000007b5 0x11e Output.o
|
||||
|
||||
.debug_line 0x00000000 0x262
|
||||
.debug_line 0x00000000 0x686
|
||||
*(.debug_line)
|
||||
.debug_line 0x00000000 0xe3 Button.o
|
||||
.debug_line 0x000000e3 0x17f Led.o
|
||||
.debug_line 0x00000000 0x1ca Button.o
|
||||
.debug_line 0x000001ca 0x2ce Can.o
|
||||
.debug_line 0x00000498 0x165 Led.o
|
||||
.debug_line 0x000005fd 0x89 Output.o
|
||||
|
||||
.debug_frame 0x00000000 0x104
|
||||
.debug_frame 0x00000000 0x324
|
||||
*(.debug_frame)
|
||||
.debug_frame 0x00000000 0x34 Button.o
|
||||
.debug_frame 0x00000034 0xd0 Led.o
|
||||
.debug_frame 0x00000000 0x44 Button.o
|
||||
.debug_frame 0x00000044 0x19c Can.o
|
||||
.debug_frame 0x000001e0 0xe0 Led.o
|
||||
.debug_frame 0x000002c0 0x64 Output.o
|
||||
|
||||
.debug_str 0x00000000 0x173
|
||||
.debug_str 0x00000000 0x4ae
|
||||
*(.debug_str)
|
||||
.debug_str 0x00000000 0x146 Button.o
|
||||
.debug_str 0x00000000 0x430 Button.o
|
||||
0x481 (size before relaxing)
|
||||
.debug_str 0x00000430 0x3c Can.o
|
||||
0x33e (size before relaxing)
|
||||
.debug_str 0x0000046c 0x23 Led.o
|
||||
0x17f (size before relaxing)
|
||||
.debug_str 0x00000146 0x2d Led.o
|
||||
0x197 (size before relaxing)
|
||||
.debug_str 0x0000048f 0x1f Output.o
|
||||
0x150 (size before relaxing)
|
||||
|
||||
.debug_loc 0x00000000 0x3db
|
||||
.debug_loc 0x00000000 0xb79
|
||||
*(.debug_loc)
|
||||
.debug_loc 0x00000000 0x48 Button.o
|
||||
.debug_loc 0x00000048 0x393 Led.o
|
||||
.debug_loc 0x00000000 0x47 Button.o
|
||||
.debug_loc 0x00000047 0x721 Can.o
|
||||
.debug_loc 0x00000768 0x3eb Led.o
|
||||
.debug_loc 0x00000b53 0x26 Output.o
|
||||
|
||||
.debug_macinfo
|
||||
*(.debug_macinfo)
|
||||
@@ -399,10 +532,12 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
|
||||
.debug_pubtypes
|
||||
*(.debug_pubtypes)
|
||||
|
||||
.debug_ranges 0x00000000 0x90
|
||||
.debug_ranges 0x00000000 0x128
|
||||
*(.debug_ranges)
|
||||
.debug_ranges 0x00000000 0x10 Button.o
|
||||
.debug_ranges 0x00000010 0x80 Led.o
|
||||
.debug_ranges 0x00000000 0x18 Button.o
|
||||
.debug_ranges 0x00000018 0x60 Can.o
|
||||
.debug_ranges 0x00000078 0x80 Led.o
|
||||
.debug_ranges 0x000000f8 0x30 Output.o
|
||||
|
||||
.debug_macro
|
||||
*(.debug_macro)
|
||||
|
||||
@@ -1,34 +1,89 @@
|
||||
S00E0000427574746F6E2E737265639A
|
||||
S11300000C942A000C9434000C9434000C943400A6
|
||||
S11300100C9434000C9434000C9434000C9434008C
|
||||
S11300200C9434000C9434000C9434000C9434007C
|
||||
S11300300C9434000C9434000C9434000C9434006C
|
||||
S11300400C9434000C9434000C9434000C9434005C
|
||||
S11300500C94340011241FBECFE5D8E0DEBFCDBF21
|
||||
S11300600E9436000C94F7000C940000CF93DF93A9
|
||||
S11300701F92CDB7DEB7CE0101960E944A00A59A21
|
||||
S113008065E0CE0101960E94B600FACF84B3876082
|
||||
S113009084BB08950E944600089585B3887F85BB7C
|
||||
S11300A085B3962F9370892B6470682B65BB089574
|
||||
S11300B02F923F924F925F926F927F928F929F9274
|
||||
S11300C0AF92BF92CF92DF92EF92FF920F931F9362
|
||||
S11300D0CF93DF935C01862E942E690100E010E03B
|
||||
S11300E0212C312C422C532C2AC0C62DD72D682DFF
|
||||
S11300F0C5010E944D002196CF3FD105C1F71016CE
|
||||
S1130100110654F4C42DD52D692DC5010E944D004E
|
||||
S11301102196C017D107C1F78FEFE81AF80AEC143B
|
||||
S1130120FD0421F407C07101602E712E0F3F1105EB
|
||||
S1130130E4F2E5CF0F5F1F4F0F3F110521F01C14B0
|
||||
S11301401D048CF3F7CFDF91CF911F910F91FF9096
|
||||
S1130150EF90DF90CF90BF90AF909F908F907F9063
|
||||
S11301606F905F904F903F902F900895EC01162F61
|
||||
S11301702AE030E044E050E067E070E00E9458007C
|
||||
S1130180212F30E046E050E064E070E0CE010E94B0
|
||||
S11301905800212F30E042E050E066E070E0CE01EC
|
||||
S11301A00E945800212F30E043E050E062E070E00C
|
||||
S11301B0CE010E945800212F30E041E050E063E07E
|
||||
S11301C070E0CE010E945800212F30E045E050E05D
|
||||
S11301D061E070E0CE010E945800212F30E044E03D
|
||||
S11301E050E065E070E0CE010E945800C9CFF89459
|
||||
S10501F0FFCF3B
|
||||
S11300000C942B000C9448000C9448000C94480069
|
||||
S11300100C9448000C9448000C9448000C9448003C
|
||||
S11300200C9448000C9448000C9448000C9448002C
|
||||
S11300300C9448000C9448000C9448000C9448001C
|
||||
S11300400C9448000C9448000C9448000C9448000C
|
||||
S11300500C944800890011241FBECFE5D8E0DEBF10
|
||||
S1130060CDBF20E0A0E6B0E001C01D92A336B207E8
|
||||
S1130070E1F710E0C6E5D0E004C02297FE010E943B
|
||||
S1130080B102C435D107C9F70E944A000C94B502E5
|
||||
S11300900C940000CF93DF93CDB7DEB72C970FB647
|
||||
S11300A0F894DEBF0FBECDBF66E082E690E00E940A
|
||||
S11300B0000283E291E09A8389831B8282E08C832D
|
||||
S11300C08FEA8D838EEF8E832AE030E044E050E0A7
|
||||
S11300D066E070E082E690E00E940B0281E690E028
|
||||
S11300E00E94AD02BE016F5F7F4F80E690E00E94E8
|
||||
S11300F05D018FE99FE00197F1F700C0000081E600
|
||||
S113010090E00E94AB0265E082E690E00E94690202
|
||||
S1130110E5CF82E690E00E94FD0181E690E00E9436
|
||||
S1130120A70280E690E00E944F01089587B3806A99
|
||||
S113013087BB88B38F7188BBBC9AC49A089580E545
|
||||
S11301408DB981E08EB908956FB9779BFECF8FB1D9
|
||||
S113015008950F931F93CF93DF93EC01062F142F71
|
||||
S1130160C49862E00E94A400602FCE010E94A40003
|
||||
S1130170612FCE010E94A400C49ADF91CF911F91F8
|
||||
S11301800F910895FF920F931F93CF93DF93EC0188
|
||||
S1130190F62E042F122FC49865E00E94A4006F2D40
|
||||
S11301A0CE010E94A400602FCE010E94A400612F02
|
||||
S11301B0CE010E94A400C49ADF91CF911F910F91A8
|
||||
S11301C0FF900895CF93DF93EC01C49860EC0E94F4
|
||||
S11301D0A4008FE99FE00197F1F700C00000C49AE2
|
||||
S11301E08FE39CE90197F1F700C0000047E06AE261
|
||||
S11301F0CE010E94A90040E969E2CE010E94A90053
|
||||
S113020042E068E2CE010E94A90043E06BE2CE0125
|
||||
S11302100E94A90040E660E6CE010E94A90040E6E3
|
||||
S113022060E7CE010E94A90040E060E2CE010E9496
|
||||
S1130230A90040E061E2CE010E94A90040E062E230
|
||||
S1130240CE010E94A90040E063E2CE010E94A90011
|
||||
S113025040E064E2CE010E94A90040E065E2CE01E4
|
||||
S11302600E94A90040E066E2CE010E94A90040E09D
|
||||
S113027067E2CE010E94A90040E06CE0CE010E943A
|
||||
S1130280A90040E06DE0CE010E94A90020E040EE0C
|
||||
S11302906FE0CE010E94C200DF91CF910895CF9309
|
||||
S11302A0DF93EC010E949600CE010E949F00CE01D4
|
||||
S11302B00E94E200DF91CF910895AF92BF92CF9256
|
||||
S11302C0DF92EF92FF920F931F93CF93DF931F92CE
|
||||
S11302D0CDB7DEB78C016B01C49860EA0E94A4001C
|
||||
S11302E06FEFC8010E94A40089836FEFC8010E94C8
|
||||
S11302F0A400C49A898182FF0AC0898184FF09C04D
|
||||
S1130300898186FD69C06894BB24B2F805C0B12C0C
|
||||
S113031003C06894BB24B1F8C4986B2D6064C80111
|
||||
S11303200E94A400F60180819181BC0176956795B5
|
||||
S11303307695679576956795C8010E94A400F601A5
|
||||
S113034060816295660F607EC8010E94A40060E02F
|
||||
S1130350C8010E94A40060E0C8010E94A400F60144
|
||||
S1130360A380F8E0FA1518F46894AA24A3F8F60117
|
||||
S11303708281882331F06A2D6064C8010E94A40040
|
||||
S113038019C06A2DC8010E94A400AA2099F0760120
|
||||
S1130390F4E0EF0EF11CAA948A2D90E00596C80EA5
|
||||
S11303A0D91EF70161917F01C8010E94A400EC14D9
|
||||
S11303B0FD04B9F7C49A0000C498B11005C061E8FF
|
||||
S11303C0C8010E94A40005C06B2D6068C8010E948A
|
||||
S11303D0A400C49A81E001C080E00F90DF91CF9126
|
||||
S11303E01F910F91FF90EF90DF90CF90BF90AF904F
|
||||
S11303F0089584B3876084BB08950E94F901089529
|
||||
S113040085B3887F85BB85B3962F9370892B6470E1
|
||||
S1130410682B65BB08952F923F924F925F926F9223
|
||||
S11304207F928F929F92AF92BF92CF92DF92EF9280
|
||||
S1130430FF920F931F93CF93DF935C01862E942E2C
|
||||
S1130440690100E010E0212C312C422C532C2AC0ED
|
||||
S1130450C62DD72D682DC5010E9400022196CF3FDD
|
||||
S1130460D105C1F71016110654F4C42DD52D692DEC
|
||||
S1130470C5010E9400022196C017D107C1F78FEF72
|
||||
S1130480E81AF80AEC14FD0421F407C07101602E87
|
||||
S1130490712E0F3F1105E4F2E5CF0F5F1F4F0F3FA1
|
||||
S11304A0110521F01C141D048CF3F7CFDF91CF91BB
|
||||
S11304B01F910F91FF90EF90DF90CF90BF90AF907E
|
||||
S11304C09F908F907F906F905F904F903F902F9070
|
||||
S11304D008951F93CF93DF93EC01162F262F30E05E
|
||||
S11304E046E050E064E070E00E940B02212F30E00F
|
||||
S11304F042E050E066E070E0CE010E940B02212F42
|
||||
S113050030E043E050E062E070E0CE010E940B0274
|
||||
S1130510212F30E041E050E063E070E0CE010E9422
|
||||
S11305200B02212F30E045E050E061E070E0CE01A5
|
||||
S11305300E940B02212F30E044E050E065E070E0BF
|
||||
S1130540CE010E940B02DF91CF911F91089584B3D5
|
||||
S1130550806384BB0895AD980895AD9A0895EE0F15
|
||||
S1110560FF1F0590F491E02D0994F894FFCF4D
|
||||
S9030000FC
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
Can.d Can.o: .././Can.cpp .././Can.h .././config.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32a.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h \
|
||||
.././mcp2515_defs.h
|
||||
|
||||
.././Can.h:
|
||||
|
||||
.././config.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32a.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h:
|
||||
|
||||
.././mcp2515_defs.h:
|
||||
@@ -37,7 +37,9 @@ SUBDIRS :=
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
C_SRCS += \
|
||||
../Button.cpp \
|
||||
../Led.cpp
|
||||
../Can.cpp \
|
||||
../Led.cpp \
|
||||
../Output.cpp
|
||||
|
||||
|
||||
PREPROCESSING_SRCS +=
|
||||
@@ -48,22 +50,30 @@ ASM_SRCS +=
|
||||
|
||||
OBJS += \
|
||||
Button.o \
|
||||
Led.o
|
||||
Can.o \
|
||||
Led.o \
|
||||
Output.o
|
||||
|
||||
|
||||
OBJS_AS_ARGS += \
|
||||
Button.o \
|
||||
Led.o
|
||||
Can.o \
|
||||
Led.o \
|
||||
Output.o
|
||||
|
||||
|
||||
C_DEPS += \
|
||||
Button.d \
|
||||
Led.d
|
||||
Can.d \
|
||||
Led.d \
|
||||
Output.d
|
||||
|
||||
|
||||
C_DEPS_AS_ARGS += \
|
||||
Button.d \
|
||||
Led.d
|
||||
Can.d \
|
||||
Led.d \
|
||||
Output.d
|
||||
|
||||
|
||||
OUTPUT_FILE_PATH +=Button.elf
|
||||
@@ -82,6 +92,10 @@ LIB_DEP+=
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
./%.o: .././%.cpp
|
||||
@echo Building file: $<
|
||||
@echo Invoking: AVR8/GNU C++ Compiler :
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
Output.d Output.o: .././Output.cpp .././Output.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32a.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h
|
||||
|
||||
.././Output.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdint.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/iom32a.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/portpins.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/common.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h:
|
||||
|
||||
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h:
|
||||
@@ -4,5 +4,9 @@
|
||||
|
||||
Button.cpp
|
||||
|
||||
Can.cpp
|
||||
|
||||
Led.cpp
|
||||
|
||||
Output.cpp
|
||||
|
||||
|
||||
+15
-18
@@ -6,18 +6,22 @@
|
||||
*/
|
||||
|
||||
#include "Led.h"
|
||||
#define LEDPORT PORTC
|
||||
#define LEDDDR DDRC
|
||||
#define LEDPINR PINC2
|
||||
#define LEDPING PINC1
|
||||
#define LEDPINB PINC0
|
||||
#define LEDPINM PINC0
|
||||
|
||||
Led::Led() {
|
||||
init();
|
||||
}
|
||||
|
||||
void Led::init() {
|
||||
//*Led::DDR |= (1<<Led::PIN_R) | (1<<Led::PIN_G) | (1<<Led::PIN_B);
|
||||
LEDDDR |= (1<<Led::PIN_R) | (1<<Led::PIN_G) | (1<<Led::PIN_B);
|
||||
LEDDDR |= (1<<LEDPINR) | (1<<LEDPING) | (1<<LEDPINB);
|
||||
}
|
||||
|
||||
void Led::uninit() {
|
||||
//*DDR &= ~((1<<PIN_R) | (1<<PIN_G) | (1<<PIN_B));
|
||||
}
|
||||
|
||||
void Led::color(uint8_t mask) {
|
||||
@@ -26,24 +30,17 @@ void Led::color(uint8_t mask) {
|
||||
rgb |= (mask & (1<<1)) ? (1<<1) : (0<<1);
|
||||
rgb |= (mask & (1<<2)) ? (1<<2) : (0<<2);
|
||||
|
||||
//*Led::PORT &= ~((1<<Led::PIN_R) | (1<<Led::PIN_G) | (1<<Led::PIN_B));
|
||||
LEDPORT &= ~((1<<Led::PIN_R) | (1<<Led::PIN_G) | (1<<Led::PIN_B));
|
||||
//PORTB &= ~((1<<PINB5) | (1<<PINB6) | (1<<PINB7));
|
||||
//*Led::PORT |= (rgb<<Led::PIN_M);
|
||||
LEDPORT |= (rgb<<Led::PIN_M);
|
||||
//PORTB |= (rgb<<PINB5);
|
||||
LEDPORT &= ~((1<<LEDPINR) | (1<<LEDPING) | (1<<LEDPINB));
|
||||
LEDPORT |= (rgb<<LEDPINM);
|
||||
}
|
||||
|
||||
void Led::rainbow(uint8_t time) {
|
||||
fade(WHITE, RED, 10);
|
||||
while(1) {
|
||||
fade(RED, YELLOW, time);
|
||||
fade(YELLOW, GREEN, time);
|
||||
fade(GREEN, CYAN, time);
|
||||
fade(CYAN, BLUE, time);
|
||||
fade(BLUE, MAGENTA, time);
|
||||
fade(MAGENTA, RED, time);
|
||||
}
|
||||
fade(RED, YELLOW, time);
|
||||
fade(YELLOW, GREEN, time);
|
||||
fade(GREEN, CYAN, time);
|
||||
fade(CYAN, BLUE, time);
|
||||
fade(BLUE, MAGENTA, time);
|
||||
fade(MAGENTA, RED, time);
|
||||
}
|
||||
|
||||
void Led::fade(int from, int to, int dur) {
|
||||
|
||||
+1
-10
@@ -10,15 +10,13 @@
|
||||
#ifndef LED_H_
|
||||
#define LED_H_
|
||||
|
||||
#define LEDPORT PORTC
|
||||
#define LEDDDR DDRC
|
||||
|
||||
class Led {
|
||||
public:
|
||||
Led();
|
||||
//virtual ~Led();
|
||||
void color(uint8_t mask);
|
||||
void rainbow(uint8_t time);
|
||||
void fade(int from, int to, int dur);
|
||||
static const uint8_t BLACK = 0;
|
||||
static const uint8_t BLUE = 1;
|
||||
static const uint8_t GREEN = 2;
|
||||
@@ -28,13 +26,6 @@ class Led {
|
||||
static const uint8_t YELLOW = 6;
|
||||
static const uint8_t WHITE = 7;
|
||||
private:
|
||||
//static const uint8_t DDR = &DDRC;
|
||||
//volatile uint8_t *PORT = &PORTC;
|
||||
static const uint8_t PIN_R = PINC2;
|
||||
static const uint8_t PIN_G = PINC1;
|
||||
static const uint8_t PIN_B = PINC0;
|
||||
static const uint8_t PIN_M = PINC0;
|
||||
void fade(int from, int to, int dur);
|
||||
void init();
|
||||
void uninit();
|
||||
};
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Output.cpp
|
||||
*
|
||||
* Created: 03.11.2013 21:17:43
|
||||
* Author: netz
|
||||
*/
|
||||
|
||||
#include "Output.h"
|
||||
#define OUTPUTPORT PORTC
|
||||
#define OUTPUTDDR DDRC
|
||||
#define OUTPUTM PINC4
|
||||
#define OUTPUTA PINC5
|
||||
|
||||
Output::Output() {
|
||||
OUTPUTDDR |= (1<<OUTPUTA) | (1<<OUTPUTM);
|
||||
}
|
||||
|
||||
void Output::AudioOff() {
|
||||
OUTPUTPORT &= ~(1<<OUTPUTA);
|
||||
}
|
||||
|
||||
void Output::AudioOn() {
|
||||
OUTPUTPORT |= (1<<OUTPUTA);
|
||||
}
|
||||
|
||||
void Output::MotorOff() {
|
||||
OUTPUTPORT &= ~(1<<OUTPUTM);
|
||||
}
|
||||
|
||||
void Output::MotorOn() {
|
||||
OUTPUTPORT |= (1<<OUTPUTM);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Output.h
|
||||
*
|
||||
* Created: 03.11.2013 19:13:56
|
||||
* Author: netz
|
||||
*/
|
||||
|
||||
#include <avr/io.h>
|
||||
|
||||
#ifndef OUTPUT_H_
|
||||
#define OUTPUT_H_
|
||||
|
||||
|
||||
class Output {
|
||||
public:
|
||||
Output();
|
||||
void AudioOn();
|
||||
void AudioOff();
|
||||
void MotorOn();
|
||||
void MotorOff();
|
||||
};
|
||||
|
||||
|
||||
#endif /* OUTPUT_H_ */
|
||||
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* config.h
|
||||
*
|
||||
* Created: 03.11.2013 22:39:54
|
||||
* Author: netz
|
||||
*/
|
||||
|
||||
|
||||
#ifndef CONFIG_H_
|
||||
#define CONFIG_H_
|
||||
|
||||
#define F_CPU 16000000
|
||||
|
||||
|
||||
|
||||
#endif /* CONFIG_H_ */
|
||||
@@ -0,0 +1,280 @@
|
||||
|
||||
#ifndef MCP2515_DEFS_H
|
||||
#define MCP2515_DEFS_H
|
||||
|
||||
/** \name SPI Kommandos */
|
||||
/*@{*/
|
||||
#define SPI_RESET 0xC0
|
||||
#define SPI_READ 0x03
|
||||
#define SPI_READ_RX 0x90
|
||||
#define SPI_WRITE 0x02
|
||||
#define SPI_WRITE_TX 0x40
|
||||
#define SPI_RTS 0x80
|
||||
#define SPI_READ_STATUS 0xA0
|
||||
#define SPI_RX_STATUS 0xB0
|
||||
#define SPI_BIT_MODIFY 0x05
|
||||
/*@}*/
|
||||
|
||||
/** \name Adressen der Register des MCP2515
|
||||
*
|
||||
* Die Redundanten Adressen von z.B. dem Register CANSTAT
|
||||
* (0x0E, 0x1E, 0x2E, ...) wurden dabei nicht mit aufgelistet.
|
||||
*/
|
||||
/*@{*/
|
||||
#define RXF0SIDH 0x00
|
||||
#define RXF0SIDL 0x01
|
||||
#define RXF0EID8 0x02
|
||||
#define RXF0EID0 0x03
|
||||
#define RXF1SIDH 0x04
|
||||
#define RXF1SIDL 0x05
|
||||
#define RXF1EID8 0x06
|
||||
#define RXF1EID0 0x07
|
||||
#define RXF2SIDH 0x08
|
||||
#define RXF2SIDL 0x09
|
||||
#define RXF2EID8 0x0A
|
||||
#define RXF2EID0 0x0B
|
||||
#define BFPCTRL 0x0C
|
||||
#define TXRTSCTRL 0x0D
|
||||
#define CANSTAT 0x0E
|
||||
#define CANCTRL 0x0F
|
||||
|
||||
#define RXF3SIDH 0x10
|
||||
#define RXF3SIDL 0x11
|
||||
#define RXF3EID8 0x12
|
||||
#define RXF3EID0 0x13
|
||||
#define RXF4SIDH 0x14
|
||||
#define RXF4SIDL 0x15
|
||||
#define RXF4EID8 0x16
|
||||
#define RXF4EID0 0x17
|
||||
#define RXF5SIDH 0x18
|
||||
#define RXF5SIDL 0x19
|
||||
#define RXF5EID8 0x1A
|
||||
#define RXF5EID0 0x1B
|
||||
#define TEC 0x1C
|
||||
#define REC 0x1D
|
||||
|
||||
#define RXM0SIDH 0x20
|
||||
#define RXM0SIDL 0x21
|
||||
#define RXM0EID8 0x22
|
||||
#define RXM0EID0 0x23
|
||||
#define RXM1SIDH 0x24
|
||||
#define RXM1SIDL 0x25
|
||||
#define RXM1EID8 0x26
|
||||
#define RXM1EID0 0x27
|
||||
#define CNF3 0x28
|
||||
#define CNF2 0x29
|
||||
#define CNF1 0x2A
|
||||
#define CANINTE 0x2B
|
||||
#define CANINTF 0x2C
|
||||
#define EFLG 0x2D
|
||||
|
||||
#define TXB0CTRL 0x30
|
||||
#define TXB0SIDH 0x31
|
||||
#define TXB0SIDL 0x32
|
||||
#define TXB0EID8 0x33
|
||||
#define TXB0EID0 0x34
|
||||
#define TXB0DLC 0x35
|
||||
#define TXB0D0 0x36
|
||||
#define TXB0D1 0x37
|
||||
#define TXB0D2 0x38
|
||||
#define TXB0D3 0x39
|
||||
#define TXB0D4 0x3A
|
||||
#define TXB0D5 0x3B
|
||||
#define TXB0D6 0x3C
|
||||
#define TXB0D7 0x3D
|
||||
|
||||
#define TXB1CTRL 0x40
|
||||
#define TXB1SIDH 0x41
|
||||
#define TXB1SIDL 0x42
|
||||
#define TXB1EID8 0x43
|
||||
#define TXB1EID0 0x44
|
||||
#define TXB1DLC 0x45
|
||||
#define TXB1D0 0x46
|
||||
#define TXB1D1 0x47
|
||||
#define TXB1D2 0x48
|
||||
#define TXB1D3 0x49
|
||||
#define TXB1D4 0x4A
|
||||
#define TXB1D5 0x4B
|
||||
#define TXB1D6 0x4C
|
||||
#define TXB1D7 0x4D
|
||||
|
||||
#define TXB2CTRL 0x50
|
||||
#define TXB2SIDH 0x51
|
||||
#define TXB2SIDL 0x52
|
||||
#define TXB2EID8 0x53
|
||||
#define TXB2EID0 0x54
|
||||
#define TXB2DLC 0x55
|
||||
#define TXB2D0 0x56
|
||||
#define TXB2D1 0x57
|
||||
#define TXB2D2 0x58
|
||||
#define TXB2D3 0x59
|
||||
#define TXB2D4 0x5A
|
||||
#define TXB2D5 0x5B
|
||||
#define TXB2D6 0x5C
|
||||
#define TXB2D7 0x5D
|
||||
|
||||
#define RXB0CTRL 0x60
|
||||
#define RXB0SIDH 0x61
|
||||
#define RXB0SIDL 0x62
|
||||
#define RXB0EID8 0x63
|
||||
#define RXB0EID0 0x64
|
||||
#define RXB0DLC 0x65
|
||||
#define RXB0D0 0x66
|
||||
#define RXB0D1 0x67
|
||||
#define RXB0D2 0x68
|
||||
#define RXB0D3 0x69
|
||||
#define RXB0D4 0x6A
|
||||
#define RXB0D5 0x6B
|
||||
#define RXB0D6 0x6C
|
||||
#define RXB0D7 0x6D
|
||||
|
||||
#define RXB1CTRL 0x70
|
||||
#define RXB1SIDH 0x71
|
||||
#define RXB1SIDL 0x72
|
||||
#define RXB1EID8 0x73
|
||||
#define RXB1EID0 0x74
|
||||
#define RXB1DLC 0x75
|
||||
#define RXB1D0 0x76
|
||||
#define RXB1D1 0x77
|
||||
#define RXB1D2 0x78
|
||||
#define RXB1D3 0x79
|
||||
#define RXB1D4 0x7A
|
||||
#define RXB1D5 0x7B
|
||||
#define RXB1D6 0x7C
|
||||
#define RXB1D7 0x7D
|
||||
/*@}*/
|
||||
|
||||
/** \name Bitdefinition der verschiedenen Register */
|
||||
/*@{*/
|
||||
|
||||
/** \brief Bitdefinition von BFPCTRL */
|
||||
#define B1BFS 5
|
||||
#define B0BFS 4
|
||||
#define B1BFE 3
|
||||
#define B0BFE 2
|
||||
#define B1BFM 1
|
||||
#define B0BFM 0
|
||||
|
||||
/** \brief Bitdefinition von TXRTSCTRL */
|
||||
#define B2RTS 5
|
||||
#define B1RTS 4
|
||||
#define B0RTS 3
|
||||
#define B2RTSM 2
|
||||
#define B1RTSM 1
|
||||
#define B0RTSM 0
|
||||
|
||||
/** \brief Bitdefinition von CANSTAT */
|
||||
#define OPMOD2 7
|
||||
#define OPMOD1 6
|
||||
#define OPMOD0 5
|
||||
#define ICOD2 3
|
||||
#define ICOD1 2
|
||||
#define ICOD0 1
|
||||
|
||||
/** \brief Bitdefinition von CANCTRL */
|
||||
#define REQOP2 7
|
||||
#define REQOP1 6
|
||||
#define REQOP0 5
|
||||
#define ABAT 4
|
||||
#define CLKEN 2
|
||||
#define CLKPRE1 1
|
||||
#define CLKPRE0 0
|
||||
|
||||
/** \brief Bitdefinition von CNF3 */
|
||||
#define WAKFIL 6
|
||||
#define PHSEG22 2
|
||||
#define PHSEG21 1
|
||||
#define PHSEG20 0
|
||||
|
||||
/** \brief Bitdefinition von CNF2 */
|
||||
#define BTLMODE 7
|
||||
#define SAM 6
|
||||
#define PHSEG12 5
|
||||
#define PHSEG11 4
|
||||
#define PHSEG10 3
|
||||
#define PHSEG2 2
|
||||
#define PHSEG1 1
|
||||
#define PHSEG0 0
|
||||
|
||||
/** \brief Bitdefinition von CNF1 */
|
||||
#define SJW1 7
|
||||
#define SJW0 6
|
||||
#define BRP5 5
|
||||
#define BRP4 4
|
||||
#define BRP3 3
|
||||
#define BRP2 2
|
||||
#define BRP1 1
|
||||
#define BRP0 0
|
||||
|
||||
/** \brief Bitdefinition von CANINTE */
|
||||
#define MERRE 7
|
||||
#define WAKIE 6
|
||||
#define ERRIE 5
|
||||
#define TX2IE 4
|
||||
#define TX1IE 3
|
||||
#define TX0IE 2
|
||||
#define RX1IE 1
|
||||
#define RX0IE 0
|
||||
|
||||
/** \brief Bitdefinition von CANINTF */
|
||||
#define MERRF 7
|
||||
#define WAKIF 6
|
||||
#define ERRIF 5
|
||||
#define TX2IF 4
|
||||
#define TX1IF 3
|
||||
#define TX0IF 2
|
||||
#define RX1IF 1
|
||||
#define RX0IF 0
|
||||
|
||||
/** \brief Bitdefinition von EFLG */
|
||||
#define RX1OVR 7
|
||||
#define RX0OVR 6
|
||||
#define TXB0 5
|
||||
#define TXEP 4
|
||||
#define RXEP 3
|
||||
#define TXWAR 2
|
||||
#define RXWAR 1
|
||||
#define EWARN 0
|
||||
|
||||
/** \brief Bitdefinition von TXBnCTRL (n = 0, 1, 2) */
|
||||
#define ABTF 6
|
||||
#define MLOA 5
|
||||
#define TXERR 4
|
||||
#define TXREQ 3
|
||||
#define TXP1 1
|
||||
#define TXP0 0
|
||||
|
||||
/** \brief Bitdefinition von RXB0CTRL */
|
||||
#define RXM1 6
|
||||
#define RXM0 5
|
||||
#define RXRTR 3
|
||||
#define BUKT 2
|
||||
#define BUKT1 1
|
||||
#define FILHIT0 0
|
||||
|
||||
/** \brief Bitdefinition von TXBnSIDL (n = 0, 1) */
|
||||
#define EXIDE 3
|
||||
|
||||
/**
|
||||
* \brief Bitdefinition von RXB1CTRL
|
||||
* \see RXM1, RXM0, RXRTR und FILHIT0 sind schon fuer RXB0CTRL definiert
|
||||
*/
|
||||
#define FILHIT2 2
|
||||
#define FILHIT1 1
|
||||
|
||||
/** \brief Bitdefinition von RXBnSIDL (n = 0, 1) */
|
||||
#define SRR 4
|
||||
#define IDE 3
|
||||
|
||||
/**
|
||||
* \brief Bitdefinition von RXBnDLC (n = 0, 1)
|
||||
* \see TXBnDLC (gleiche Bits)
|
||||
*/
|
||||
#define RTR 6
|
||||
#define DLC3 3
|
||||
#define DLC2 2
|
||||
#define DLC1 1
|
||||
#define DLC0 0
|
||||
|
||||
/*@}*/
|
||||
#endif // MCP2515_DEFS_H
|
||||
Reference in New Issue
Block a user