0,0 → 1,126 |
#ifndef _MAIN_H |
#define _MAIN_H |
|
#define MOTORADRESSE 4 // Adresse (1-4) |
#define MANUELL_PWM 0 // zur manuellen Vorgabe der PWM Werte: 0-255 |
#define TEST_MANUELL 0 // zum Testen der Hardware ohne Kommutierungsdetektion Werte: 0-255 (PWM) |
#define TEST_SCHUB 0 // Erzeugt ein Schubmuster Werte: 0 = normal 1 = Test |
#define POLANZAHL 12 // Anzahl der Pole (Magnete) Wird nur zur Drehzahlausgabe über Debug gebraucht |
#define MAX_PWM 255 |
#define MIN_PWM 3 |
#define MIN_PPM 10 // ab hier (PPM-Signal) schaltet der Regler erst ein |
#define FILTER_PPM 7 // wie stark soll das PPM-Signal gefiltert werden (Werte: 0-30)? |
|
#define SIO_DEBUG 0 // Testwertausgaben auf der seriellen Schnittstelle |
#define X3D_SIO 1 // serielles Protokoll des X3D (38400Bd) Achtung: dann muss SIO_DEBUG = 0 sein |
|
|
#define _16KHZ // Schaltfrequenz -- die gewünschte einkommentieren |
//#define _32KHZ // Schaltfrequenz -- die gewünschte einkommentieren |
|
|
#ifdef _16KHZ |
#define MAX_STROM 130 // ab ca. 13A PWM ausschalten |
#define LIMIT_STROM 65 // ab ca. 6,5A PWM begrenzen |
#endif |
|
#ifdef _32KHZ |
#define MAX_STROM 130 // ab ca. 13A PWM ausschalten |
#define LIMIT_STROM 50 // ab ca. 5,0A PWM begrenzen |
#endif |
|
#define SYSCLK 8000000L //Quarz Frequenz in Hz |
|
|
//Robbe Roxxy 2824-34 mit Todd 10x4,5 bei 16kHz |
//PWM Strom Schub |
//10 0,18A 21g |
//20 0,30A 38g |
//30 0,40A 49g |
//40 0,54A 60g |
//50 0,70A 83g |
//60 0,95A 102g |
//70 1,25A 128g |
//80 1,50A 151g |
//90 1,83A 175g |
//100 2,25A 206g |
//110 2,66A 228g |
//120 3,10A 257g |
//130 3,55A 278g |
//140 4,00A 305g |
//150 4,50A 330g |
//160 5,30A 355g |
//170 5,85A 387g |
//180 6,40A 400g |
//190 7,10A 425g |
//200 7,60A 460g |
|
//0,5A 63g 14% |
//1,0A 110g 24% |
//1,5A 170g 32% |
//2,0A 195g 37% |
//2,5A 230g 41% |
//3,0A 260g 46% |
//3,5A 290g 50% |
//4,0A 310g 53% |
//4,5A 340g 58% |
//5,0A 360g 63% |
//5,5A 380g 67% |
//6,0A 400g 68% |
//6,5A 420g 70% |
//7,0A 450g 75% |
//7,5A 460g 78% |
//8,0A 475g 82% |
//9,0A 550g 86% |
//11 A 600g 100% |
|
|
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <avr/io.h> |
#include <avr/pgmspace.h> |
#include <avr/interrupt.h> |
#include <avr/eeprom.h> |
#include <avr/boot.h> |
#include <avr/wdt.h> |
|
#include "twislave.h" |
#include "old_macros.h" |
#include "analog.h" |
#include "uart.h" |
#include "timer0.h" |
#include "BLMC.h" |
|
#include "PPM_Decode.h" |
|
extern unsigned int I2C_Timeout; |
extern unsigned char SIO_Timeout; |
extern unsigned int PWM; |
extern unsigned int Strom; //ca. in 0,1A |
extern unsigned char Strom_max; |
extern unsigned char Mittelstrom; |
extern unsigned int CntKommutierungen; |
extern unsigned char MotorAnwerfen; |
extern unsigned char MotorGestoppt; |
extern unsigned char ZeitZumAdWandeln; |
extern unsigned char MaxPWM; |
|
#define ROT 0x08 |
#define GRUEN 0x80 |
|
#if defined(__AVR_ATmega8__) |
# define OC1 PB1 |
# define DDROC DDRB |
# define OCR OCR1A |
# define PWM10 WGM10 |
# define PWM11 WGM11 |
#endif |
|
|
#endif //_MAIN_H |
|
|
|
|
|