Subversion Repositories BL-Ctrl

Rev

Rev 50 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 ingob 1
#ifndef _MAIN_H
2
 #define _MAIN_H
3
 
51 holgerb 4
#define MOTORADRESSE      0  // Adresse (1-4)     0 = Motoradresse über Lötjumper auf BL-Ctrl V1.1
24 ingob 5
 
1 ingob 6
#define MANUELL_PWM       0   // zur manuellen Vorgabe der PWM  Werte: 0-255
7
#define TEST_MANUELL      0   // zum Testen der Hardware ohne Kommutierungsdetektion  Werte: 0-255 (PWM)
8
#define TEST_SCHUB        0       // Erzeugt ein Schubmuster        Werte: 0 = normal 1 = Test
9
#define POLANZAHL        12   // Anzahl der Pole (Magnete) Wird nur zur Drehzahlausgabe über Debug gebraucht
10
#define MAX_PWM         255
11
#define MIN_PWM           3
12
#define MIN_PPM          10   // ab hier (PPM-Signal) schaltet der Regler erst ein
13
#define FILTER_PPM        7   // wie stark soll das PPM-Signal gefiltert werden (Werte: 0-30)?
14
 
15
#define SIO_DEBUG         0   // Testwertausgaben auf der seriellen Schnittstelle
18 ingob 16
#define X3D_SIO           0       // serielles Protokoll des X3D (38400Bd) Achtung: dann muss SIO_DEBUG = 0 sein
1 ingob 17
 
18
 
19
#define _16KHZ    // Schaltfrequenz  -- die gewünschte einkommentieren
20
//#define _32KHZ    // Schaltfrequenz  -- die gewünschte einkommentieren
21
 
26 ingob 22
#define FDD6637_IRLR7843  1  // bessere MosFet bestückt? bewirkt höhere Stromgrenzen  
1 ingob 23
 
24
#ifdef _16KHZ
18 ingob 25
#ifdef FDD6637_IRLR7843        // bessere Fets = mehr Strom zulassen
26
 #define MAX_STROM        200  // ab ca. 20A PWM ausschalten
27
 #define LIMIT_STROM      120  // ab ca. 12A PWM begrenzen
28
#else
29
 #define MAX_STROM        130  // ab ca. 13A PWM ausschalten
30
 #define LIMIT_STROM       65  // ab ca. 6,5A PWM begrenzen
1 ingob 31
#endif
18 ingob 32
#endif
1 ingob 33
 
34
#ifdef _32KHZ
35
#define MAX_STROM        130  // ab ca. 13A PWM ausschalten
36
#define LIMIT_STROM       50  // ab ca. 5,0A PWM begrenzen
37
#endif
38
 
39
#define SYSCLK  8000000L        //Quarz Frequenz in Hz
40
 
41
 
42
//Robbe Roxxy 2824-34 mit Todd 10x4,5 bei 16kHz
43
//PWM   Strom   Schub
44
//10   0,18A    21g
45
//20   0,30A    38g
46
//30   0,40A    49g
47
//40   0,54A    60g
48
//50   0,70A    83g
49
//60   0,95A   102g
50
//70   1,25A   128g
51
//80   1,50A   151g
52
//90   1,83A   175g
53
//100  2,25A   206g
54
//110  2,66A   228g
55
//120  3,10A   257g
56
//130  3,55A   278g
57
//140  4,00A   305g
58
//150  4,50A   330g
59
//160  5,30A   355g
60
//170  5,85A   387g
61
//180  6,40A   400g
62
//190  7,10A   425g
63
//200  7,60A   460g
64
 
65
//0,5A  63g 14%
66
//1,0A 110g 24%
67
//1,5A 170g 32%
68
//2,0A 195g 37%
69
//2,5A 230g 41%
70
//3,0A 260g 46%
71
//3,5A 290g 50%
72
//4,0A 310g 53%
73
//4,5A 340g 58%
74
//5,0A 360g 63%
75
//5,5A 380g 67%
76
//6,0A 400g 68%
77
//6,5A 420g 70%
78
//7,0A 450g 75%
79
//7,5A 460g 78%
80
//8,0A 475g 82%
81
//9,0A 550g 86%
82
//11 A 600g 100%
83
 
84
 
85
#include <stdio.h>
86
#include <stdlib.h>
87
#include <string.h>
88
#include <avr/io.h>
89
#include <avr/pgmspace.h>
90
#include <avr/interrupt.h>
91
#include <avr/eeprom.h>
92
#include <avr/boot.h>
93
#include <avr/wdt.h>
94
 
95
#include "twislave.h"
96
#include "old_macros.h"
97
#include "analog.h"
98
#include "uart.h"
99
#include "timer0.h"
100
#include "BLMC.h"
101
 
102
#include "PPM_Decode.h"
103
 
104
extern unsigned int  I2C_Timeout;
23 ingob 105
extern unsigned int SIO_Timeout;
1 ingob 106
extern unsigned int  PWM;
107
extern unsigned int  Strom;     //ca. in 0,1A
108
extern unsigned char Strom_max;
109
extern unsigned char Mittelstrom;
110
extern unsigned int  CntKommutierungen;
111
extern unsigned char MotorAnwerfen;
112
extern unsigned char MotorGestoppt;
113
extern unsigned char ZeitZumAdWandeln;
114
extern unsigned char MaxPWM;
24 ingob 115
extern unsigned char MotorAdresse;
50 holgerb 116
extern unsigned char PPM_Betrieb;
1 ingob 117
 
118
#define ROT    0x08
119
#define GRUEN  0x80     
120
 
24 ingob 121
#define ADR1   0x40    // für Motoradresswahl
122
#define ADR2   0x80    // 
123
 
1 ingob 124
#if defined(__AVR_ATmega8__)
125
#  define OC1   PB1
126
#  define DDROC DDRB
127
#  define OCR   OCR1A
128
#  define PWM10 WGM10
129
#  define PWM11 WGM11
130
#endif 
131
 
132
 
133
#endif //_MAIN_H
134
 
135
 
136
 
137
 
138