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