Commit 47ec5636df9667e36a4de0e1914e6989b0b7ed3f
receivedMon, 28. Oct 2024, 09:33:25 (by user sx)
Mon, 28 Oct 2024 08:33:25 +0000 (09:33 +0100)
authorManfred Steiner <sx@htl-kaindorf.at>
Mon, 28 Oct 2024 08:33:17 +0000 (09:33 +0100)
committerManfred Steiner <sx@htl-kaindorf.at>
Mon, 28 Oct 2024 08:33:17 +0000 (09:33 +0100)
3 files changed:
software/nano-644/test_2024-07-23/src/main.cpp
software/nano-644/test_2024-07-23/src/units/cc1101.cpp
software/nano-644/test_2024-07-23/src/units/motor.cpp

index 18ee2d34c21198574bafae5bc7a391239035442f..35f309f666511486ef19b074bb77e834fd00db1e 100644 (file)
@@ -155,7 +155,8 @@ uint8_t detectHardwareVersion () {
    hardwareVersion = 0; // unknown board version
    // printf("Hardware-Version: ADC7H = %d\n", ADCH);
    #if defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__)
-      if (ADCH >= 0xf0) {
+      
+      if (ADCH >= 0xf4) {
          hardwareVersion = 1;
       } else if (ADCH >= 0xe0) {
          hardwareVersion = 2;
@@ -169,14 +170,16 @@ uint8_t detectHardwareVersion () {
       }
    #endif
 
-   if (hardwareVersion == 0) {
+   if (hardwareVersion < 1 || hardwareVersion > 2) {
       #ifdef __AVR_ATmega644P__
-         printf("\nInvalid Hardware-Version: ADC7H = %d (ATmega644P, 3.3V)\n", ADCH);
+         printf_P(PSTR("\nInvalid Hardware-Version: ADC7H = %d (ATmega644P, 3.3V)\n"), ADCH);
       #elif __AVR_ATmega1284P__
-         printf("\nInvalid Hardware-Version: ADC7H = %d (ATmega1284P, 3.3V)\n", ADCH);
+         printf_P(PSTR("\nInvalid Hardware-Version: ADC7H = %d (ATmega1284P, 3.3V)\n"), ADCH);
       #elif __AVR_ATmega328P__
-         printf("\nInvalid Hardware-Version: ADC7H = %d (ATmega328P, 5V)\n", ADCH);
+         printf_P(PSTR("\nInvalid Hardware-Version: ADC7H = %d (ATmega328P, 5V)\n"), ADCH);
       #endif
+   } else {
+      printf_P(PSTR("\n\nHardware %d detected (ADC7H=0x%02X)"), hardwareVersion, ADCH);
    }
 
    ADMUX = 0;
index d53ecf2b37b6b017cbf71d00520b242d44f86827..aebe71398f97d66b1bec6431f595afa692911389 100644 (file)
 
    void Cc1101::init () {
 
+      #ifdef __AVR_ATmega1284P__
+         // Nano-1284
+         DDRC |= (1 << PC6);
+         PORTC |= (1 << PC6); // modem voltage 3.3V ON
+      #endif
+
       // trigger for debugging
       PORTB &= ~(1 << PB0);
       DDRB |= ( 1 << PB0);
       DDRB &= ~((1 << PB7) | (1 << PB6) | (1 << PB5) | (1 << PB4));
       DDRA &= ~((1 << PA5) | (1 << PA4));
       PORTA &= ~((1 << PA5) | (1 << PA4));
+
+      #ifdef __AVR_ATmega1284P__
+         // Nano-1284
+         DDRC &= ~(1 << PC6);
+         PORTC &= ~(1 << PC6); // modem voltage 3.3V OFF
+      #endif
    }
 
    void Cc1101::setChipEnableLow () {
index 83f0c3bf47d6b018d95e4993239f31bef7038567..7f8fbf9044d8bffc101904edf8c52e36c7fc7b98 100644 (file)
@@ -182,7 +182,7 @@ int8_t Motor::run (uint8_t subtest) {
             }
             float rpm = 60.0 / (float)timer / 0.0001;
             if (timer > 0) {
-               printf_P(PSTR("  n= %4d U/min (T=%04x)"), (int)rpm, timer);
+               printf_P(PSTR("  n= %5d U/min (T=%04x)"), (int)rpm, timer);
             } else {
                printf_P(PSTR("  no rotation (T=%04x)  "), timer);
             }