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