-
-
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include "uart.h"
#include <stdio.h>
volatile u08 UART_Ready;
volatile u08 UART_ReceivedChar;
u08 UART_RxChar;
u08* pUART_Buffer;
prog_char UART_pszEndOfLine[3] = {0x0d,0x0a,0};
/************************************************** *********************************
Schrittmotoransteuerung Poti und Display
************************************************** **********************************
Johannes Glaser
Mainstraße 52
97334 Nordheim
jojo.glaser@web.de
ICQ: 348-870-813
09381 4141
************************************************** **********************************/
#include <avr/io.h>
#include <inttypes.h>
//################################################## #################################
//############### Vatiablen setzen und initialisieren ###############################
//################################################## #################################
//Serielles Netzwerk Seriell
//Sender
unsigned char SeriellerPort_Hi ;
unsigned char SeriellerPort_Lo ;
unsigned char SeriellerPort_Reset ;
unsigned char SenderBitRegister[21] ;
unsigned char SenderBitRegisterZaehler ;
unsigned short SenderImpulslaenge = 1;
unsigned short SenderImpulslaengeZaehler ;
//Empfänger
unsigned char SeriellerPin_Hi ;
unsigned char SeriellerPin_Hi_Merker ;
unsigned char SeriellerPin_Lo ;
unsigned char SeriellerPin_Lo_Merker ;
unsigned char SeriellerPin_Reset ;
unsigned char SeriellerPin_Reset_Merker ;
unsigned char EmpfaengerRegister[51] ;
unsigned char EmpfaengerRegisterZaehler ;
unsigned short SeriellerPin_Hi_Zaehler ;
unsigned short SeriellerPin_Lo_Zaehler ;
unsigned short SeriellerPin_Reset_Zaehler ;
unsigned short SeriellerPin_Prell_Zeit = 2;
unsigned char EmpfaengerRiegelReset ;
//Port Variablen
unsigned char Pin_SeriellerPort_Hi ; //Ausgang
unsigned char Pin_SeriellerPort_Lo ; //Ausgang
unsigned char Pin_SeriellerPort_Reset ; //Ausgang
unsigned char Pin_SeriellerPin_Hi ; //Eingang
unsigned char Pin_SeriellerPin_Lo ; //Eingang
unsigned char Pin_SeriellerPin_Reset ; //Eingang
//Serielle Datenübertragung über 2 Pins für Temperatur
unsigned char Pin_Serielle_Bit ;
unsigned char Pin_Serielle_Bit_Merker ;
unsigned char Pin_Serielle_Setzen ;
unsigned char Pin_Serielle_Setzen_Merker ;
unsigned char Pin_Serielle_Bit2 ;
unsigned char Pin_Serielle_Setzen2 ;
unsigned char BitEmpfangen ;
unsigned short BitAdresse[11] = {0,1,2,4,8,16,32,64,128,256,512};
unsigned short TemperaturTmp ;
unsigned short TemperaturTmp1 ;
unsigned short TemperaturTmp2 ;
unsigned short Temperatur ;
unsigned short Temperatur_Abfrage_Zeit = 10;
unsigned short Temperatur_Abfrage_Zaehler ;
//Fertigliste wenn alle Seriellen daten gesendet und empfangen sind alle 1
unsigned short FertigSender = 1;
unsigned short FertigEmpfaenger = 1;
unsigned short FertigTemperatur = 1;
//Empfaenger Daten
unsigned short TemperaturEmpfangen ;
unsigned short AuszugWert ;
unsigned char SystemStatus ;
unsigned char Teilingsfaktor ;
unsigned char Hellichkeit ;
unsigned char Auszug ;
unsigned char LAN_nicht_Verbunden ;
unsigned char Nullpunkt_festlegen ;
unsigned char Temp_Ausgleich_EIN ;
unsigned char Temp_Ausgleich_AUS ;
unsigned char Joistik_EIN ;
unsigned char Joistik_AUS ;
unsigned char FreieEmpfaengerFunktion_1 ;
unsigned char FreieEmpfaengerFunktion_2 ;
unsigned char FreieEmpfaengerFunktion_3 ;
unsigned char SicherheitsBitsEmpfaenger ;
//Sender Daten
unsigned short Temperatur ;
unsigned short PotiWert ;
unsigned char SicherheitsBits2 ;
//Podi Abfrage
unsigned short ad_wert_zero ;
unsigned short ad_wert_up_max = 980;
unsigned short ad_wert_up_min ;
unsigned short ad_wert_down_max ;
unsigned short ad_wert_down_min = 670;
unsigned short ad_wert_up_diff ;
unsigned short ad_wert_down_diff ;
unsigned short ad_wert_up_Poti ;
unsigned short ad_wert_down_Poti ;
short prozent ;
short PotiProzent ;
unsigned short PotiADWert ;
//Display
//Nur Hellichkeit ändern, wenn sie sich auch endern soll.
unsigned char Hellichkeit_Merker ;
//Arrays für das Display festlegen
unsigned char messagenumber ;
unsigned char messagenumberMerker ;
unsigned char messageSystemStatus[21] ;
const char *messages[] = { "\r ",
/* 1 */ "\rLAN_nicht Verbunden ",
/* 2 */ "\rNullpunkt festlegen ",
/* 3 */ "\r Temp_Ausgleich EIN ",
/* 4 */ "\r Temp_Ausgleich AUS ",
/* 5 */ "\r Joistik EIN ",
/* 6 */ "\r Joistik AUS ",
/* 7 */ "\r Hellichkeit = 0% ",
/* 8 */ "\r Hellichkeit = 30% ",
/* 9 */ "\r Hellichkeit = 50% ",
/* 10 */ "\r Hellichkeit = 75% ",
/* 11 */ "\r Hellichkeit = 100% ",
/* 12 */ "\r System Status "
};
//Anzeigen Länge
unsigned short InfoAnzeigeLaenge = 10 ;
unsigned short InfoAnzeige_Zaehler ;
unsigned short LAN_nicht_Verbunden_Anzeigen ;
unsigned short Nullpunkt_festlegen_Anzeigen ;
unsigned short Temp_Ausgleich_EIN_Anzeigen ;
unsigned short Temp_Ausgleich_AUS_Anzeigen ;
unsigned short Joistik_EIN_Anzeigen ;
unsigned short Joistik_AUS_Anzeigen ;
unsigned short Hellichkeit_0_Anzeigen ;
unsigned short Hellichkeit_30_Anzeigen ;
unsigned short Hellichkeit_50_Anzeigen ;
unsigned short Hellichkeit_75_Anzeigen ;
unsigned short Hellichkeit_100_Anzeigen ;
unsigned short LAN_nicht_Verbunden_Merker ;
unsigned short Nullpunkt_festlegen_Merker ;
unsigned short Temp_Ausgleich_EIN_Merker ;
unsigned short Temp_Ausgleich_AUS_Merker ;
unsigned short Joistik_EIN_Merker ;
unsigned short Joistik_AUS_Merker ;
unsigned short Hellichkeit_0_Merker ;
unsigned short Hellichkeit_30_Merker ;
unsigned short Hellichkeit_50_Merker ;
unsigned short Hellichkeit_75_Merker ;
unsigned short Hellichkeit_100_Merker ;
//Hellichkeitsaufteilung
unsigned char Hellichkeit_0 ;
unsigned char Hellichkeit_30 ;
unsigned char Hellichkeit_50 ;
unsigned char Hellichkeit_75 ;
unsigned char Hellichkeit_100 ;
//################################################## #################################
//############### I/O-Ports initialisieren ##########################################
//################################################## #################################
//----------------------------------------------------------------------------------
void Init(void)
{
/*
Initialisierungsfunktion für die Hardware des AVR MEGA 8151
Hier werden alle Hardware-Komponenten in initialisiert
"in Grundstellung gebracht" 0=Eing. 1=Ausg.
*/
/*
Ein/Ausgangstabelle:
Port B 0 = 0 free
Port B 1 = 0 free
Port B 2 = 0 free
Port B 3 = 0 free
Port B 4 = 0 free
Port B 5 = 0 free
Port B 6 = 0 Pin_Serielle_Setzen
Port B 7 = 0 Pin_Serielle_Bit
Port C 0 = 0 free
Port C 1 = 0 free
Port C 2 = 0 free
Port C 3 = 0 free
Port C 4 = 0 free
Port C 5 = 0 free
Port C 6 = 0 free
Port C 7 = 0 free
Port D 0 = 0 free
Port D 1 = 1 Display
Port D 2 = 0 SeriellerPin_Bit
Port D 3 = 0 SeriellerPin_Set
Port D 4 = 0 SeriellerPin_Reset
Port D 5 = 1 SeriellerPort_Bit
Port D 6 = 1 SeriellerPort_Set
Port D 7 = 1 SeriellerPort_Reset
*/
// Ausgänge / Eingänge initialisieren
DDRB = 1; //00000001
DDRC = 0; //00000000
DDRD = 224; //11100000
//Grundstellung
PORTB = 254; //11111110
PORTC = 255; //11111111
PORTD = 001; //00000001
} // Ende der Funktion Initialisierung()
//----------------------------------------------------------------------------------
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen