Source file: /~heha/basteln/m/Kram/dccrail-avrgcc.zip/binärgleich/init.inc

/********************************************************************************
 * DCC Wagen Decoder Software V1.0						*
 * Copyright (c) 2011 Toralf Wilhelm						*
 *										*
 * private Nutzung erwünscht, gewerbliche Nutzung erfordert zwingend meine Zustimmung!	*
 * Datei:	init.inc							*
 * Kontakt:	toralfwilhelm@web.de						*
 * Webseite:	www.toralfwilhelm.de						*
 * Version:	01/2011 Version 1 Start						*
 * Beschreibung: Initialisiert die Hardware und Register der DCC Lichtdecoder Software	*
 ********************************************************************************/

/************************
 * Ports Initialisieren *
 ************************/

	ldi	w,m8DDRB	// Portb Richtungen setzen
	out	DDRB,w
	ldi	w,m8DDRC	// Portc Richtungen setzen
	out	DDRC,w
	ldi	w,m8DDRD	// Portd Richtungen setzen
	out	DDRD,w
	clr	w		// alle Ports ausschalten
	out	PORTB,w
	out	PORTD,w
	out	PORTC,w
//#ifdef EEARH
//	out	EEARH,w
//#endif

/***************************
 * Register Initialisieren *
 ***************************/

	ldi	w,128	// Entprellung auf Mitte
	sts	analog_Richtung,w
	clr	w	//
	sts	Funktionen,w	// Funktionen abschalten
	sts	analog_sw,w
	ldi	ZL,lo8(AUX_Status)
	ldi	ZH,hi8(AUX_Status)
	clr	w2
AUX_clr:
	st	z+,w
	inc	w2
	cpi	w2,(ANZAHL_AUX)
	brne	AUX_clr

	sts	EE_Adresse,w
	sts	(EE_Adresse+1),w
	clr	DCCreg
	clr	Lowpegel
	clr	Highpegel
	clr	Zaehler_10us

	rcall	EEpromDatenlesen	// DekoderDaten aus EEProm einlesen

/*****************
 * Hardware_init *
 *****************/

	rcall	init_adc_m8	// ADC init
	rcall	init_timer1_m8	// Timer1 init -> StepDown Wandler
	rcall	init_timer2_m8	// Timer2 init -> 10us CTC interrupt zum DCC Signal einlesen
#if debug
	rcall	init_debug
#endif

	sei	// interrups einschalten
Detected encoding: UTF-80