//lcds
	#ifdef out0_port
	#define out0_on  pinSET(out0_port,out0_pin)
	#define out0_off pinCLR(out0_port,out0_pin)
	#endif


#include "C:\zuc\lcd\colors.h" //C:\WinAVRkk\kklibx\//

#if no_lcd
#define lw(x) nothing()
#define li2(x) nothing()
#define li4(x) nothing()
#define lg(y,x) nothing()
#define lw(x) nothing()
#define lcd_time() nothing()
#define lcd_int(x) nothing()
#define li(x) nothing()
#define lcd_goto(y,x) nothing()
#define lgw(y,x,z) nothing()
#define lgi(y,x,z) nothing()
#define selectfont(y) nothing()
#define lcd_write(x) nothing()
#define lcd_clear(x) nothing()
#define lcd_int2(x) nothing()
#define lcd_char(x) nothing()
#define lcd_hex16(x) nothing()
#define lcd_init() nothing()
#define lcd_spi_mode_on

#define lcd_spi_mode_off
#define lcd_hex8(x) nothing()
#define lcd_ip(x) nothing()
#define lcd_time_min() nothing()
#else


#if  use_twi || use_twilcd || use_twi_rtc
#define i2c_ds1307 1
#include "C:\zuc\i2c\twimaster.h"
#include "C:\zuc\i2c\kk_twixx.h"
#endif





#if use_twilcd 
#define use_glcd     	0
//#include "kk_alt_lcdxx.h" //C:\WinAVRkk\kklibx\//
#include "C:\zuc\lcd\twilcd.h" //C:\WinAVRkk\kklibx\//
#include "C:\zuc\lcd\lcd_std_func.h" //C:\WinAVRkk\kklibx\//
#endif


#if use_lcd74hc 
#define use_glcd     	0
#include "kk_alt_lcdxx.h" //C:\WinAVRkk\kklibx\//
//#include "C:\zuc\lcd\twilcd.h" //C:\WinAVRkk\kklibx\//
#include "C:\zuc\lcd\lcd_std_func.h" //C:\WinAVRkk\kklibx\//
#endif



#if use_spitft
#define use_glcd     		1
#include "C:\zuc\lcd\lowlevel_spi_tft.h" //C:\WinAVRkk\kklibx\//
#include "C:\zuc\lcd\new_lib_fonts.h" //C:\WinAVRkk\kklibx\//

#if use_lcdili9225  	
#include "C:\zuc\lcd\new_ili9225.h" //C:\WinAVRkk\kklibx\//

#else
#include "C:\zuc\lcd\new_ili9320.h" //C:\WinAVRkk\kklibx\//
#endif


#include "C:\zuc\lcd\new_lib_glcd.h"
#include "C:\zuc\lcd\lcd_std_func.h"
#endif
#endif


//smh - Timer
#define wdg_on {zl_sec_timer0=0;sbi(bool1,schalterWDG);}
#define wdg_off {cbi(bool1,schalterWDG);}
#define wdg_Menu_on {zl_sec_wdg=0;sbi(bool1,schalterWDG_Menu);}
#define wdg_Menu_reset {zl_sec_wdg=0;zl_sec_timer0=0;}
#define wdg_Menu_off {cbi(bool1,schalterWDG_Menu);zl_sec_wdg=0;}

#define wdt_reset() zl_sec_wdg=0

u32 get_fattime (void){
	//Pack date and time into a DWORD variable
	return	  ((u32)(YEA - 1980) << 25)
		 	| ((u32)MON << 21)
			| ((u32)DAY << 16)
			| ((u32)hou << 11)
			| ((u32)min << 5)
			| ((u32)sec >> 1);/* */
}



//=========================================
#if zucSTM32
#endif

#if zucAVR
//#include "C:\zuc\AVR\avr_spi.h"
#endif

#if zucSTM32
//#include "C:\zuc\stm\spi_stm.h"
#endif


 

#ifdef ds1820_port
//#include "c:/zuc/sensors/ds1820_ids.h"
#include "c:/zuc/sensors/neuds1820.h"
#endif

#ifdef owx_port
#define my_adr 10//slave adress
#include "c:/zuc/owx/owx.h"
#endif



#if USE_MMC
//+++++++++++++++++++++ mmc +++++++++++++++++++++++++++++++++++
	#include "C:\zuc\stm32_sd\ffconf.h"
	#include "C:\zuc\stm32_sd\integer.h"
	#include "C:\zuc\stm32_sd\diskio.h"


#if zucSTM32 || zucLPC176x

	#include "C:\zuc\stm32_sd\mmc_32f1.c.h"
//#include "C:\zuc\chan_sdx\ff_mmc_lowlevel.h"
	//VCT6 hw ok
	//VCT6 sw ok
	//avr sw ok
	//avr hw err
#endif


#if zucAVR
//	#include "C:\zuc\stm32_sd\mmc_32f1.c.h"
	//avr uspi ok
	
	
	
	#include "C:\zuc\chan_sdx\ff_mmc_lowlevel.h"
	//avr hw ok
	//avr sw ok
	//avr uspi err
#endif	
	

	#include "C:\zuc\stm32_sd\ff.h"
	#include "C:\zuc\stm32_sd\ff.c.h"
	FATFS FatFsx;		// FatFs work area needed for each volume
	FIL Fil;			/* File object needed for each open file */
	//--------------------------------------------------------
#endif


//======================================================
#if use_net

#if zucAVR==0
#include "C:\zuc\ur_org\wkkstring.h"
#endif

//#include "C:\zuc\enc38j60\encSPI.h"
//osolet, in "C:\zuc\ur_org/enc28j60.h
#include "C:\zuc\ur_org\net_config.h"
#include "C:\zuc\ur_org/enc28j60.h"
#include "C:\zuc\ur_org/enc28j60.c.h"

//#include <avr/eeprom.h>

#include "C:\zuc\ur_org\stack.h"
#include "C:\zuc\ur_org\stack.c.h"
//#include "C:\winAVRkk\avr2015\500 web radig\stack.c"
#include "C:\zuc\ur_org\base64.h"
#include "C:\zuc\ur_org\base64.c.h"
#include <C:\zuc\ur_org\httpd.h>
#include "C:\zuc\ur_org\webpage.h"
#include <C:\zuc\ur_org\httpd.c.h>

#endif



#if 0

#if zucAVR==0
#include "C:\zuc\net\wkkstring.h"
#endif
#include "C:\zuc\net\config_network.h"









#if zucLPC176x
//#include "C:\zuc\net_lowlevel_lpc\networkdevice.h"
#include "C:\zuc\net_lowlevel_lpc\target.h"
#include "C:\zuc\net_lowlevel_lpc\lpc17xx_emac.h"
#include "C:\zuc\net_lowlevel_lpc\lpc17xx_emac.c.h"

#define networkdevice_init  EMAC_Init
//packet_length = ETH_PACKET_RECEIVE(MTU_SIZE,eth_buffer);
//#define networkdevice_read(y,x) EMAC_ReadPacket(x)
unsigned int
tapdev_readx(int abfr,void *pPacket)
{//timer_netactivity=5;
	return EMAC_ReadPacket(pPacket);
}
//#define ETH_PACKET_RECEIVE(y,x) EMAC_ReadPacket(x)
#define ETH_PACKET_RECEIVE(y,x) tapdev_readx(MTU_SIZE,x)
#define ETH_PACKET_SEND(x,y)  EMAC_SendPacket(y,x)


//#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\networkdevice.h"
//#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\networkdevicec.h"
/*
#include "C:\lpcexpresso_netio\netIO_V0\src\net_lowlevel\config_network.h"

#include "C:\lpcexpresso_netio\netIO_V0\src\net_lowlevel\lpc17xx_emac.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_lowlevel\lpc17xx_emacc.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_lowlevel\networkdevice.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_lowlevel\networkdevicec.h"
*/
//#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\stack.h"
//#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\stack_c.h"
u8 resultVar[20];
u8 var_array[20];
#include "C:\zuc\net\stack.h"
#include "C:\zuc\net\stack_c.h"


#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\udp.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\ntp.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\ntpc.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\telnetd.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\telnetdc.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\dnsc.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\dnscc.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\kkstring.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\translate.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\translatec.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\httpd.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\webpage.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\httpdc.h"
#include "C:\lpcexpresso_netio\netIO_V0\src\net_URadig\helpfiles.h"






#else//lpc emac
/*
#include "C:\zuc\enc38j60\encspi.h"
#include "C:\zuc\enc38j60\enc28j60.h"
#include "C:\zuc\enc38j60\enc28j60_c.h"



#include "C:\zuc\net\stack.h"
#include "C:\zuc\net\stack_c.h"

//#include "C:\zuc\net\dnsc.h"
//#include "C:\zuc\net\dnsc_c.h"

//#include <C:\zuc\net\net_tools.h>
//#include "udp.h"
//#include "C:\zuc\net\ntp.h"
//#include "C:\zuc\net\ntpc.h"

//#include "telnetd.h"
//#include "telnetdc.h"


#include "C:\zuc\net\base64.h"
#include "C:\zuc\net\base64_c.h"
uint16_t var_array[MAX_VAR_ARRAY];
uint16_t tmp_vport=0;
uint8_t resultVar[20];	 
#include <C:\zuc\net\translate_c.h>

#ifndef PORTA
u8 PORTA,PINA;
#endif
#ifndef PORTB
u8 PORTB,PINB;
#endif
#ifndef PORTC
u8 PORTC,PINC;
#endif
#ifndef PORTD
u8 PORTD,PIND;
#endif


#include <C:\zuc\net\httpd.h>
#include "C:\zuc\net\webpage.h"
#include <C:\zuc\net\httpd_c.h>

#include <C:\zuc\net\net_tools.h>
*/
#endif

#endif//net
//======================================================
#include "C:\zuc\start\tools.h"

#ifdef ir_in_port
#define 	ir_pin		!(pinVAL(ir_in_port,ir_in_pin))
#include "C:\zuc\ir\FB_globals.h"
#endif

#if use_hzg
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#include <avr/interrupt.h>
#include "C:\zuc\heizung\interrupts.h"
#include "C:\zuc\heizung\heizung.h"
#endif

void small_reset(void){
lcd_clear(RED);
lcd_time_min();
//lgw(15,10,"A");
}
   
void gpio_init(void)
{
//	init_led;
#ifdef LED1_port
led1_init;
#endif    
#ifdef LED2_port
led2_init;
#endif  


#if zucAVR  
init_timer_smh();
#endif


#if use_twi_rtc
ds1307gefunden=1;
i2c_init();                                
ds1307gefunden = i2c_start(0xd0);
if (ds1307gefunden==0) {
kk_ds1307_getAll_to_global_struct_zt();}
#endif




#if zucLPC176x
vF_SysTickInit(100000000, 10);
//rtc_init();
#endif

lcd_init();


sbi(bool1,schalterProgrammstart);

#ifdef ds1820_port
ds1820_start_meas();
#endif


//lgw(15,10,"B");



	#ifdef ir_in_port
pinDIRin(ir_in_port,ir_in_pin);	
pinPULLUP(ir_in_port,ir_in_pin,1);
	#endif


//lgw(15,10,"C");



//led1_on;



	#ifdef tast0_port
	#define tast0		!(pinVAL(tast0_port,tast0_pin))
	#define tast0_init  pinDIRin(tast0_port,tast0_pin)
	tast0_init;
	#endif


	#ifdef tast1_port
	#define tast1		!(pinVAL(tast1_port,tast1_pin))
	#define tast1_init  pinDIRin(tast1_port,tast1_pin)
	tast1_init;
	#endif


	#ifdef tast2_port
	#define tast2		!(pinVAL(tast2_port,tast2_pin))
	#define tast2_init  pinDIRin(tast2_port,tast2_pin)
	tast2_init;
	#endif

	#ifdef tast3_port
	#define tast3		!(pinVAL(tast3_port,tast3_pin))
	#define tast3_init  pinDIRin(tast3_port,tast3_pin)
	tast3_init;
	#endif


	#ifdef tast4_port
	#define tast4		!(pinVAL(tast4_port,tast4_pin))
	#define tast4_init  pinDIRin(tast4_port,tast4_pin)
	tast4_init;
	#endif



	#ifdef out0_port
	pinDIRout(out0_port,out0_pin);
	#define out0_on  pinSET(out0_port,out0_pin)
	#define out0_off pinCLR(out0_port,out0_pin)
	#endif

	#ifdef out1_port
	pinDIRout(out1_port,out1_pin);
	#define out1_on  pinSET(out1_port,out1_pin)
	#define out1_off pinCLR(out1_port,out1_pin)
	#endif

	#ifdef out2_port
	pinDIRout(out2_port,out2_pin);
	#define out2_on  pinSET(out2_port,out2_pin)
	#define out2_off pinCLR(out2_port,out2_pin)
	#endif

	#ifdef out3_port
	pinDIRout(out3_port,out3_pin);
	#define out3_on  pinSET(out3_port,out3_pin)
	#define out3_off pinCLR(out3_port,out3_pin)
	#endif

	#ifdef out4_port
	pinDIRout(out4_port,out4_pin);
	#define out4_on  pinSET(out4_port,out4_pin)
	#define out4_off pinCLR(out4_port,out4_pin)
	#endif

	#ifdef out5_port
	pinDIRout(out5_port,out5_pin);
	#define out5_on  pinSET(out5_port,out5_pin)
	#define out5_off pinCLR(out5_port,out5_pin)
	#endif

	#ifdef out6_port
	pinDIRout(out6_port,out6_pin);
	#define out6_on  pinSET(out6_port,out6_pin)
	#define out6_off pinCLR(out6_port,out6_pin)
	#endif

	#ifdef out7_port
	pinDIRout(out7_port,out7_pin);
	#define out7_on  pinSET(out7_port,out7_pin)
	#define out7_off pinCLR(out7_port,out7_pin)
	#endif

	#ifdef out8_port
	pinDIRout(out8_port,out8_pin);
	#define out8_on  pinSET(out8_port,out8_pin)
	#define out8_off pinCLR(out8_port,out8_pin)
	#endif
	
	#ifdef out9_port
	pinDIRout(out9_port,out9_pin);
	#define out9_on  pinSET(out9_port,out9_pin)
	#define out9_off pinCLR(out9_port,out9_pin)
	#endif
	
#if USE_MMC //++++++++++++++ foolproof ++++++++++++++
lgw(2,1,"foolproof err    ");

	UINT bw,res;
//SPCR=83;SPSR=1;
	res=	f_mount(&FatFsx, "", 0);		/* Give a work area to the default drive */
//lgi(2,1,SPCR);lgi(2,6,SPSR);
//SPCR=83;SPSR=1;
	res=f_open(&Fil, "newfile.txt", FA_WRITE | FA_CREATE_ALWAYS); 	/* Create a file */
		if (res== FR_OK) {
				res=	f_write(&Fil, "It works!\r\n", 11, &bw);	
			f_close(&Fil);								/* Close the file */
			if (bw == 11) {		/* Lights green LED if data written well */
				lgw(2,1,"foolproof ok    ");
			} else{
				lgw(2,1,"foolproof failed");
			}
			wait;
		}

#endif //-------------- foolproof --------------
	
#if use_net
	stack_init();
	httpd_init();

//networkdevice_init();
//stack_init();
//dns_init();
//dns_query(hostname);
//httpd_init();
#endif

//lgw(15,10,"D");


}
    
	
    
