Просмотр исходного кода

Merge pull request #290 from buildrob/Marlin_v1

Clean up special serial port cases
daid 12 лет назад
Родитель
Сommit
faea7d72b8
2 измененных файлов: 8 добавлений и 15 удалений
  1. 7
    15
      Marlin/MarlinSerial.h
  2. 1
    0
      README.md

+ 7
- 15
Marlin/MarlinSerial.h Просмотреть файл

24
 #include "Marlin.h"
24
 #include "Marlin.h"
25
 
25
 
26
 #if !defined(SERIAL_PORT) 
26
 #if !defined(SERIAL_PORT) 
27
-#error SERIAL_PORT not set 
27
+#define SERIAL_PORT 0
28
 #endif
28
 #endif
29
 
29
 
30
 // The presence of the UBRRH register is used to detect a UART.
30
 // The presence of the UBRRH register is used to detect a UART.
35
 // These are macros to build serial port register names for the selected SERIAL_PORT (C preprocessor
35
 // These are macros to build serial port register names for the selected SERIAL_PORT (C preprocessor
36
 // requires two levels of indirection to expand macro values properly)
36
 // requires two levels of indirection to expand macro values properly)
37
 #define SERIAL_REGNAME(registerbase,number,suffix) SERIAL_REGNAME_INTERNAL(registerbase,number,suffix)
37
 #define SERIAL_REGNAME(registerbase,number,suffix) SERIAL_REGNAME_INTERNAL(registerbase,number,suffix)
38
-#if SERIAL_PORT == 0 && !defined(UBRR0H)
38
+#if SERIAL_PORT == 0 && (!defined(UBRR0H) || !defined(UDR0)) // use un-numbered registers if necessary
39
 #define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##suffix
39
 #define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##suffix
40
-#else
40
+#else
41
 #define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##number##suffix
41
 #define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##number##suffix
42
-#endif
42
+#endif
43
 
43
 
44
 // Registers used by MarlinSerial class (these are expanded 
44
 // Registers used by MarlinSerial class (these are expanded 
45
 // depending on selected serial port
45
 // depending on selected serial port
46
-#define M_UCSRxA SERIAL_REGNAME(UCSR,SERIAL_PORT,A) // defines M_UCSRxA to be UCSRxA where x is the serial port number
46
+#define M_UCSRxA SERIAL_REGNAME(UCSR,SERIAL_PORT,A) // defines M_UCSRxA to be UCSRnA where n is the serial port number
47
 #define M_UCSRxB SERIAL_REGNAME(UCSR,SERIAL_PORT,B) 
47
 #define M_UCSRxB SERIAL_REGNAME(UCSR,SERIAL_PORT,B) 
48
 #define M_RXENx SERIAL_REGNAME(RXEN,SERIAL_PORT,)    
48
 #define M_RXENx SERIAL_REGNAME(RXEN,SERIAL_PORT,)    
49
 #define M_TXENx SERIAL_REGNAME(TXEN,SERIAL_PORT,)    
49
 #define M_TXENx SERIAL_REGNAME(TXEN,SERIAL_PORT,)    
50
 #define M_RXCIEx SERIAL_REGNAME(RXCIE,SERIAL_PORT,)    
50
 #define M_RXCIEx SERIAL_REGNAME(RXCIE,SERIAL_PORT,)    
51
 #define M_UDREx SERIAL_REGNAME(UDRE,SERIAL_PORT,)    
51
 #define M_UDREx SERIAL_REGNAME(UDRE,SERIAL_PORT,)    
52
-#if SERIAL_PORT == 0 && !defined(UDR0)
53
-  #if defined(UDR)
54
-    #define M_UDRx UDR  //  atmega8, atmega32
55
-  #else
56
-    #error UDR not defined
57
-  #endif
58
-#else
59
-  #define M_UDRx SERIAL_REGNAME(UDR,SERIAL_PORT,) 
60
-#endif  
52
+#define M_UDRx SERIAL_REGNAME(UDR,SERIAL_PORT,)  
61
 #define M_UBRRxH SERIAL_REGNAME(UBRR,SERIAL_PORT,H)
53
 #define M_UBRRxH SERIAL_REGNAME(UBRR,SERIAL_PORT,H)
62
 #define M_UBRRxL SERIAL_REGNAME(UBRR,SERIAL_PORT,L)
54
 #define M_UBRRxL SERIAL_REGNAME(UBRR,SERIAL_PORT,L)
63
 #define M_RXCx SERIAL_REGNAME(RXC,SERIAL_PORT,)
55
 #define M_RXCx SERIAL_REGNAME(RXC,SERIAL_PORT,)
189
 extern MarlinSerial MSerial;
181
 extern MarlinSerial MSerial;
190
 #endif // ! teensylu
182
 #endif // ! teensylu
191
 
183
 
192
-#endif
184
+#endif

+ 1
- 0
README.md Просмотреть файл

45
 *   Heater power reporting. Useful for PID monitoring.
45
 *   Heater power reporting. Useful for PID monitoring.
46
 *   PID tuning
46
 *   PID tuning
47
 *   CoreXY kinematics (www.corexy.com/theory.html)
47
 *   CoreXY kinematics (www.corexy.com/theory.html)
48
+*   Configurable serial port to support connection of wireless adaptors.
48
 
49
 
49
 The default baudrate is 250000. This baudrate has less jitter and hence errors than the usual 115200 baud, but is less supported by drivers and host-environments.
50
 The default baudrate is 250000. This baudrate has less jitter and hence errors than the usual 115200 baud, but is less supported by drivers and host-environments.
50
 
51
 

Загрузка…
Отмена
Сохранить