⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tools.c

📁 AVR USB 下载线, 全套的开发资料,想做板子的可以参考下/
💻 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 + -