/********************************************************************************
* DCC Wagen Decoder Software V1.1 *
* Copyright 2011 Toralf Wilhelm *
* *
* private Nutzung erwünscht, gewerbliche Nutzung erfordert zwingend meine Zustimmung! *
* Datei: definitionen.inc *
* Kontakt: toralfwilhelm@web.de *
* Webseite: www.toralfwilhelm.de *
* Version: 01/2011 Version 1 Start *
* 01/2013 CV7 Software-Version geändert *
* Beschreibung: Definitionen, Daten und Macros zur DCC Wagen Decoder Software *
********************************************************************************/
#pragma once
//Für ATmega8/48/88/168/328
#define __SFR_OFFSET 0
#include <avr/io.h>
/**************
* Konstanten *
**************/
//Ports + Pins
#define AUX_1_port PORTB // Funktionsausgang_1_Port
#define AUX_1_pin 5 // Funktionsausgang_1_Pin
#define AUX_2_port PORTB //
#define AUX_2_pin 4 //
#define AUX_3_port PORTB //
#define AUX_3_pin 3 //
#define AUX_4_port PORTB //
#define AUX_4_pin 2 //
#define AUX_5_port PORTB //
#define AUX_5_pin 0 //
#define AUX_6_port PORTD //
#define AUX_6_pin 7 //
#define AUX_7_port PORTD //
#define AUX_7_pin 6 //
#define AUX_8_port PORTD //
#define AUX_8_pin 5 //
#define AUX_9_port PORTB //
#define AUX_9_pin 7 //
#define AUX_10_port PORTB //
#define AUX_10_pin 6 //
#define AUX_11_port PORTD //
#define AUX_11_pin 4 //
#define AUX_12_port PORTD //
#define AUX_12_pin 3 //
#define AUX_13_port PORTD //
#define AUX_13_pin 2 //
#define AUX_14_port PORTD //
#define AUX_14_pin 1 //
#define AUX_15_port PORTD //
#define AUX_15_pin 0 //
#define AUX_16_port PORTC //
#define AUX_16_pin 5 //
#define AUX_17_port PORTC //
#define AUX_17_pin 3 //
#define AUX_18_port PORTC //
#define AUX_18_pin 4 //
#define Ack_port PORTC
#define Ack_pin 1
#define DCCport PINC // Port DCC Eingang
#define DCCpin 0 // Port_Pin DCC Eingang
#define UBport PINC // Port Decoder UB MESS Eingang
#define UBpin 2 // Port_Pin UB MESS Eingang
#define MESSport PINC // Port U_LED MESS Eingang
#define MESSpin 6 // Port_Pin U_LED MESS Eingang
#define m8DDRB 0b11111111 // DDRB 1=Ausgang/0=Eingang
#define m8DDRC 0b00111010 // DDRC 1=Ausgang/0=Eingang
#define m8DDRD 0b11111111 // DDRD 1=Ausgang/0=Eingang
;mit rs232
#define m8DDRD_debug 0b11111110 // DDRD 1=Ausgang/0=Eingang
#define BAUD 28800 // Die gewünschte Baudrate
#define UBRR_wert (F_CPU/(16 * Baud))-1 ;UBRR-Wert berechnen
#define ANZAHL_AUX 18 //
//Flagregister
#define resetbit 0 //
#define noPower 1 // 1 -> 64 Sek keine UB am Decoder vorhanden
#define noUB 2 // 1 -> keine UB
#define Lipo 3 // 1 -> Lipobetrieb AUX18 = Lipo GND
#define bit 4 // "das" neue Bit
#define neuerBefehl 5 // es ist ein neuer DCC Befehl eingetroffen
//DCCregister
#define richtung_inv 0 // 1= Fahrtrichtung invertiert
#define fahrstufen 1 // 1= 28/128FS 0= 14FS
#define analog 2 // 0= nur DCC
#define analog_ein 3 // 1= auf analog umgeschaltet
#define erwAdresse 5 // 1= nutze lange Adresse
#define keinDCC 6 // für analogbetrieb ist gesetzt, wenn 2,54ms * analog_sw_zeit
// kein Pegelwechsel am DCC Eingang war
#define richtung 7 // aktuelle Fahrtrichtung wenn nicht inv. 1=vor 0=zurück
//Empfangspositionen
#define Preamble 0
#define ByteA_lesen 1
#define ByteB_lesen 2
#define ByteC_lesen 3
#define ByteD_lesen 4
#define ByteE_lesen 5
#define ByteF_lesen 6
//Funktionen
#define FL 0
#define F1 1
#define F2 2
#define F3 3
#define F4 4
#define F5 5
#define F6 6
#define F7 7
//AUX-Status
#define Nacht_aus 3
#define Effekt_2 4
#define AUX_aktiv 5
#define AUX_an 6
#define Effekt_Start 7
//Effekte
#define normales_Licht 0
#define Neonlicht 1
#define defekte_Lampe 2
#define Nachtmodus 3
#define Kupplung 4
#define schaltet_zufaellig 5
#define AUX_rueckwaerts_aus 6
#define AUX_vorwaerts_aus 7
#define analog_sw_zeit 40 //analog Umschaltverzögerung*2,55ms ist die Zeit ohne DCC Pulse nach der auf analog Betrieb umgeschaltet wird
/************************
* Registerdefinitionen *
************************/
#define Adresse r0 // eigene Adresse bzw bei langen Adressen der high wert
#define U_LED r1 // U_LED Sollwert
#define Zaehler_1_25ms r2 // 1,25ms Zähler
#define intsreg r3 // Kopie sreg im Interrupt (zum beschleunigen vom interrupt)
#define Dimmer r4 // Zähler für Dimmer
#define PWM_Zaehler r5 // Zähler für Soft PWM
#define DCC_xor r7 //
#define byteA r8 // Empfangsbytespeicher
#define byteB r9
#define byteC r10
#define byteD r11
#define byteE r12
#define byteF r13
#define Zaehler_62_5ms r14
#define Zaehler_10us r15 // zählt die 10us ctc interrups
#define w r16 // Arbeitsregister 1
#define w2 r17 // Arbeitsregister 2
#define w3 r18 // Arbeitsregister 3
#define w4 r19 // Arbeitsregister 4
#define bitzaehler r20 // Bitzaehler beim speichern
#define EmpPos r21 // Empfangsposition DCC Befehl
// 0 = PREAMBLE
// 1 = ByteA_lesen
// bis
// 6 = ByteF_lesen
#define flag r22 // Flagregister
// Bit0 = 1 -> resetbit
// Bit1 = 1 ->
// Bit2 = 1 ->
// Bit3 = 1 ->
// Bit4 = 1 -> das neue bit
// Bit5 = 1 -> neuer DCC Befehl da
// Bit6 = 1 ->
// Bit7 = 1 ->
#define DCCreg r23 // DCC Register für Funktionen und Fahrtrichtung
#define Lowpegel r24 // Speicher für Lowpegel
#define Highpegel r25 // Speicher für Highpegel
.global Reset,TIM2_COMP,ADC_Complete,analog_sw // interrupt.S
.global init_adc_m8,init_timer1_m8,init_timer2_m8 // init_m8wagdec.S
.global eepromlesen,eepromschreiben,EE_Adresse // Eprom.S
.global DATEN_NEU_EINLESEN,AUX_Funktion,AUX_Status,AUX_Effekte,AdresseLow,EEpromDatenlesen //LoadEEdaten.S
.global EEAdresse,EECV13,EEOSCCAL,EEsoftup,EE_AUX_FKT,EE_AUX_EFF,EEcv29,EE_U_LED,EE_Lipo,EElanghigh,EElanglow
.global DCC_DECODER,SERVICE_MODE,DCCreset,F_GRUPPE_1,F_GRUPPE_2,CV_edit //DCC_Decode.S
.global ProgTest //Programmierung.S
.global F_NEU_EINLESEN,StepDown_ausschalten,StepDown_einschalten,Funktionen //Funktionsbefehle.S
.global V_BASIS,ERW_OPERATION // Fahrbefehle.S
.global OUT_SET //Out_set.S
.global analog_Ri_Zaehler,AUX_Timer,UB_test,Pz
.global ANALOG_FAHRT,analog_Richtung // analog.S
Detected encoding: UTF-8 | 0
|