Menu

A strange warning message

2022-05-17
2022-05-17
  • Bertrand BAROTH

    Bertrand BAROTH - 2022-05-17

    "Warning: Direction of pin PORTB.3 cannot be set automatically"
    What does this mean ? (Version 1121)
    Thanks for any answer ...

     

    Last edit: Bertrand BAROTH 2022-05-17
  • Anobium

    Anobium - 2022-05-17

    The message ie correct. You need to set the DIR for that port.

     
  • Bertrand BAROTH

    Bertrand BAROTH - 2022-05-17

    Look at lines 12 and 439 ... This should be enough ! The size of prog memory is TOO SMALL, about one half of what it should be (in the compilation window appearing on top of screen).
    In fact I saw an error in lines 594 and 596, but this should not cause the error message. Modifying an output bit on a port which is completely input only should modify the corresponding pullup.

     

    Last edit: Bertrand BAROTH 2022-05-17
    • Anobium

      Anobium - 2022-05-17

      The compiler expects, therefore assumes, that you use the DIR commands. Set DDRB directly (as you are) prevents the compiler from understanding the state of the port. The compiler does not reverse lookup the DDRB into DIR status per port.bit.

      Use DIR to resolve to resolve the error message.

       
  • Bertrand BAROTH

    Bertrand BAROTH - 2022-05-17

    But the method of "global setting DIR" should work all the way ! The compiler signals no errors for PortB.0 and PortB.1, which were "globally" set to outputs in line 443 ?

     
    • Anobium

      Anobium - 2022-05-17

      If you want to update the compiler to reverse lookup the direct setting of the port registers then this would be a hard task ( thinking that we have the potential about 10 different chip architectures and where the max port.bin combination would be Porta to Portg).

      The architecture of the compiler today cannot reverse lookup the direct setting of the port registers, so, where this message is issue use DIR rather than direct setting of the port registers, or, do both - your call.

      Re. PortB.0 and PortB.1 are set explicitly in your program and the compiler therefore can make a decision regarding the port direct.

      Do not be shooting the messenger here. Because this is what it feels like from my point of view . Exclamation marks ... do not make me feel good about helping.

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.