📄 tools.c
字号:
/** \file
<b>some tools</b><br>
Autor: Matthias Wei遝r<br>
Copyright 2004: Matthias Wei遝r<br>
License: QPL (see license.txt)
<hr>
*/
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/pgmspace.h>
#include <avr/eeprom.h>
#include "tools.h"
#include "devices.h"
volatile unsigned char t1_tick;
unsigned char t1_cnt;
//Konstanten im EEPROM
#define EEPROM __attribute__ ((section (".eeprom")))
//Variablen im EEPROM
EEPROM unsigned char eeprom_sck_period=10;
SIGNAL(SIG_OUTPUT_COMPARE1A)
{
t1_tick=1;
t1_cnt++;
}
unsigned char get_t1_tick(void)
{
if(t1_tick)
{
t1_tick=0;
return 1;
}
return 0;
}
/**
Wartet n*1ms - 1ms max.
*/
void wait_ms(unsigned int n)
{
while(n)
{
if(get_t1_tick()) n--;
}
}
/*
unsigned char PROGMEM tools_dev_name_ATtiny10[] = "ATtiny10";
unsigned char PROGMEM tools_dev_name_ATtiny11[] = "ATtiny11";
unsigned char PROGMEM tools_dev_name_ATtiny12[] = "ATtiny12";
unsigned char PROGMEM tools_dev_name_ATtiny15[] = "ATtiny15";
unsigned char PROGMEM tools_dev_name_ATtiny22[] = "ATtiny22";
unsigned char PROGMEM tools_dev_name_ATtiny26[] = "ATtiny26";
unsigned char PROGMEM tools_dev_name_ATtiny28[] = "ATtiny28";
unsigned char PROGMEM tools_dev_name_AT90S1200[] = "AT90S1200";
unsigned char PROGMEM tools_dev_name_AT90S2313[] = "AT90S2313";
unsigned char PROGMEM tools_dev_name_AT90S2323[] = "AT90S2323";
unsigned char PROGMEM tools_dev_name_AT90S2333[] = "AT90S2333";
unsigned char PROGMEM tools_dev_name_AT90S2343[] = "AT90S2343";
unsigned char PROGMEM tools_dev_name_AT90S4414[] = "AT90S4414";
unsigned char PROGMEM tools_dev_name_AT90S4433[] = "AT90S4433";
unsigned char PROGMEM tools_dev_name_AT90S4434[] = "AT90S4434";
unsigned char PROGMEM tools_dev_name_AT90S8515[] = "AT90S8515";
unsigned char PROGMEM tools_dev_name_AT90S8535[] = "AT90S8535";
unsigned char PROGMEM tools_dev_name_AT90C8534[] = "AT90C8534";
unsigned char PROGMEM tools_dev_name_ATmega8[] = "ATmega8";
unsigned char PROGMEM tools_dev_name_ATmega8515[] = "ATmega8515";
unsigned char PROGMEM tools_dev_name_ATmega8535[] = "ATmega8535";
unsigned char PROGMEM tools_dev_name_ATmega161[] = "ATmega161";
unsigned char PROGMEM tools_dev_name_ATmega162[] = "ATmega162";
unsigned char PROGMEM tools_dev_name_ATmega163[] = "ATmega163";
unsigned char PROGMEM tools_dev_name_ATmega16[] = "ATmega16";
unsigned char PROGMEM tools_dev_name_ATmega169[] = "ATmega169";
unsigned char PROGMEM tools_dev_name_ATmega323[] = "ATmega323";
unsigned char PROGMEM tools_dev_name_ATmega32[] = "ATmega32";
unsigned char PROGMEM tools_dev_name_ATmega103[] = "ATmega103";
unsigned char PROGMEM tools_dev_name_ATmega128[] = "ATmega128";
unsigned char PROGMEM tools_dev_name_AT86RF401[] = "AT86RF401";
unsigned char PROGMEM tools_dev_name_AT89S51[] = "AT89S51";
unsigned char PROGMEM tools_dev_name_AT89S52[] = "AT89S52";
struct device g_deviceTable[] PROGMEM =
{
// Id Rv FSize ESize FB LB SerFP SerLP SerFLR CLFR SerMP PS EPS SelfT FulPar Poll FPoll EPol1 EPol2 Name
{ATTINY10, 1, 1024, 0, 1, 1, FALSE, FALSE, FALSE, FALSE, FALSE, 0, 0, FALSE, FALSE, FALSE, 0x00, 0x00, 0x00,tools_dev_name_ATtiny10 ,0xD7, 0xA0},
{ATTINY11, 1, 1024, 0, 1, 1, FALSE, FALSE, FALSE, FALSE, FALSE, 0, 0, FALSE, FALSE, FALSE, 0x00, 0x00, 0x00,tools_dev_name_ATtiny11 ,0xD7, 0xA0},
{ATTINY12, 1, 1024, 64, 1, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 0, 0, TRUE, FALSE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATtiny12 ,0xD7, 0xA0},
{ATTINY15, 1, 1024, 64, 1, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 0, 0, TRUE, FALSE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATtiny15 ,0xD7, 0xA0},
{ATTINY22, 1, 2048, 128, 1, 1, TRUE, TRUE, TRUE, TRUE, TRUE, 0, 0, FALSE, FALSE, TRUE, 0xFF, 0x00, 0xFF,tools_dev_name_ATtiny22 ,0xD7, 0xA0},
{ATTINY26, 1, 2048, 128, 2, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 32, 4, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATtiny26 ,0xD7, 0xA0},
{ATTINY28, 1, 2048, 0, 1, 1, FALSE, FALSE, FALSE, FALSE, FALSE, 0, 0, TRUE, TRUE, FALSE, 0x00, 0x00, 0x00,tools_dev_name_ATtiny28 ,0xD7, 0xA0},
{AT90S1200, 4, 1024, 64, 1, 1, FALSE, TRUE, FALSE, TRUE, TRUE, 0, 0, FALSE, TRUE, TRUE, 0xFF, 0x00, 0xFF,tools_dev_name_AT90S1200 ,0xD7, 0xA0},
{AT90S2313, 1, 2048, 128, 1, 1, FALSE, TRUE, FALSE, TRUE, TRUE, 0, 0, FALSE, TRUE, TRUE, 0x7F, 0x80, 0x7F,tools_dev_name_AT90S2313 ,0xD7, 0xA0},
{AT90S2323, 1, 2048, 128, 1, 1, TRUE, TRUE, TRUE, TRUE, TRUE, 0, 0, FALSE, FALSE, TRUE, 0xFF, 0x00, 0xFF,tools_dev_name_AT90S2323 ,0xD7, 0xA0},
{AT90S2333, 1, 2048, 128, 1, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 0, 0, FALSE, TRUE, TRUE, 0xFF, 0x00, 0xFF,tools_dev_name_AT90S2333 ,0xD7, 0xA0},
{AT90S2343, 1, 2048, 128, 1, 1, TRUE, TRUE, TRUE, TRUE, TRUE, 0, 0, FALSE, FALSE, TRUE, 0xFF, 0x00, 0xFF,tools_dev_name_AT90S2343 ,0xD7, 0xA0},
{AT90S4414, 1, 4096, 256, 1, 1, FALSE, TRUE, FALSE, TRUE, TRUE, 0, 0, FALSE, TRUE, TRUE, 0x7F, 0x80, 0x7F,tools_dev_name_AT90S4414 ,0xD7, 0xA0},
{AT90S4433, 1, 4096, 128, 1, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 0, 0, FALSE, TRUE, TRUE, 0xFF, 0x00, 0xFF,tools_dev_name_AT90S4433 ,0xD7, 0xA0},
{AT90S4434, 1, 4096, 256, 1, 1, TRUE, TRUE, TRUE, TRUE, TRUE, 0, 0, FALSE, TRUE, TRUE, 0xFF, 0x00, 0xFF,tools_dev_name_AT90S4434 ,0xD7, 0xA0},
{AT90S8515, 1, 8192, 256, 1, 1, FALSE, TRUE, FALSE, TRUE, TRUE, 0, 0, FALSE, TRUE, TRUE, 0x7F, 0x80, 0x7F,tools_dev_name_AT90S8515 ,0xD7, 0xA0},
{AT90S8535, 1, 8192, 512, 1, 1, TRUE, TRUE, TRUE, TRUE, TRUE, 0, 0, FALSE, TRUE, TRUE, 0xFF, 0x00, 0xFF,tools_dev_name_AT90S8535 ,0xD7, 0xA0},
{AT90C8534, 1, 8192, 512, 0, 1, FALSE, FALSE, FALSE, TRUE, FALSE, 0, 0, FALSE, TRUE, FALSE, 0x00, 0x00, 0x00,tools_dev_name_AT90C8534 ,0xD7, 0xA0},
{ATMEGA8, 1, 8192, 512, 2, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 64, 4, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega8 ,0xD7, 0xA0},
{ATMEGA8515, 1, 8192, 512, 2, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 64, 4, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega8515 ,0xD7, 0xA0},
{ATMEGA8535, 1, 8192, 512, 2, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 64, 4, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega8535 ,0xD7, 0xA0},
{ATMEGA161, 1, 16384, 512, 1, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 128, 0, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega161 ,0xD7, 0xA0},
{ATMEGA162, 1, 16384, 512, 3, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 128, 4, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega162 ,0xD7, 0xA0},
{ATMEGA163, 1, 16384, 512, 2, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 128, 0, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega163 ,0xD7, 0xA0},
{ATMEGA16, 1, 16384, 512, 2, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 128, 4, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega16 ,0xD7, 0xA0},
{ATMEGA169, 1, 16384, 512, 3, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 128, 4, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega169 ,0xD7, 0xA0},
{ATMEGA323, 1, 32768, 1024, 2, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 128, 0, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega323 ,0xD7, 0xA0},
{ATMEGA32, 1, 32768, 1024, 2, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 128, 4, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega32 ,0xD7, 0xA0},
{ATMEGA103, 1, 131072, 4096, 1, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 256, 0, FALSE, TRUE, FALSE, 0x00, 0x00, 0x00,tools_dev_name_ATmega103 ,0xA0, 0xD7},
{ATMEGA128, 1, 131072, 4096, 3, 1, TRUE, TRUE, TRUE, FALSE, TRUE, 256, 8, TRUE, TRUE, TRUE, 0xFF, 0xFF, 0xFF,tools_dev_name_ATmega128 ,0xD7, 0xA0},
{AT86RF401, 1, 2048, 128, 0, 1, FALSE, TRUE, TRUE, FALSE, TRUE, 0, 0, FALSE, FALSE, FALSE, 0x00, 0x00, 0x00,tools_dev_name_AT86RF401 ,0xD7, 0xA0},
{AT89S51, 1, 4096, 0, 0, 1, FALSE, TRUE, TRUE, FALSE, TRUE, 0, 0, FALSE, FALSE, FALSE, 0x00, 0x00, 0x00,tools_dev_name_AT89S51 ,0xD7, 0xA0},
{AT89S52, 1, 8192, 0, 0, 1, FALSE, TRUE, TRUE, FALSE, TRUE, 0, 0, FALSE, FALSE, FALSE, 0x00, 0x00, 0x00,tools_dev_name_AT89S52 ,0xD7, 0xA0},
{0}
};
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -