Непонятная ошибка..

Тема в разделе "Микроконтроллеры AVR", создана пользователем Suro, 25 дек 2018.

  1. Suro

    Suro Нерд

    Никак не могу понять как это возможно.

    Когда подаю питание , программа попадает в этот цыкл и не выходит из него.

    В чем может быть проблема ? (есть еще на плате 1kOM Pull-Up резистор на +5V , и проверяю тестером тот же пин и на него стоит 1)
     

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      50,3 КБ
      Просмотров:
      417
    • 2.JPG
      2.JPG
      Размер файла:
      22,6 КБ
      Просмотров:
      442
  2. parovoZZ

    parovoZZ Гуру

    в том, что условие выполнения цикла true
     
  3. Airbus

    Airbus Радиохулиган Модератор

  4. Suro

    Suro Нерд

    какая разница что в цикле true ? условие PINC.0 == 0 а проверяю тестером в нем сидит 1 ,, оно не должно войти в этот цикл пока не 0
     
  5. b707

    b707 Гуру

    а можно для идиотов пояснить - PINC.pluse PINC.minuse - это что за команды такие? что за контроллер?
     
  6. parovoZZ

    parovoZZ Гуру

    из цикла не выйдешь, пока условие выполнения цикла true. Вопрос как звучал?
    Если хочешь получить ожидаемый ответ, научись правильно задавать вопросы.
     
  7. Suro

    Suro Нерд

    там у меня есть стрки
    #define pluse 1
    #define minuse 2 (забыл просто вложить)

    а контроллер Atmega16
     
  8. Suro

    Suro Нерд

    Там тебе где видно что условие true , если написано PINC.prp == 0 (a prp у меня равно 2), а перед этим строки
    DDRC = 0b00000000;
    PORTC = 0b11111100;
     
  9. Suro

    Suro Нерд

    Вопрос в что оно не должно входить в этот цикл потому что у меня фаактически PINC.2 == 1
     
  10. DIYMan

    DIYMan Guest

    Где правда, Зин?
     
  11. ZAZ-965

    ZAZ-965 Гуру

    По-моему у вас для PINC.0 (PINC.prp ?) и PINC.1 не включены резисторы подтяжки
    PORTC=0b11111100;
    У Кодевижна копи/пасте не работает?
     
  12. Suro

    Suro Нерд

    извеняюсь ,, должен был написать PINC.2 вместо PINC.0
     
  13. Suro

    Suro Нерд

    Код (C++):
    #include <mega16.h>
    #include <delay.h>

    #define prp        2
    #define pluse      1          
    #define minuse     2

    unsigned int current_prp;

    void main(void)
    {

    //-----------------------------------------------------------------------------------------------------------------------
       
        //PORTS Configuration
        DDRA  = 0b00001000;    
        PORTA = 0b00000000;

        DDRD  = 0b11111000;    
        PORTD = 0b11111111;

        DDRB  = 0b11110000;    
        PORTB = 0b00001111;
       
        DDRC  = 0b00000000;    
        PORTC = 0b11111100;

    while(1){
    while(PINC.prp == 0){
                    if(PIND.pluse == 0){
                        current_prp++;
                        delay_ms(250);
                       
                         if(current_prp >= 10000){
                         current_prp = 0;  
                         };      
                    };
                    if(PIND.minuse == 0){
                        current_prp--;
                        delay_ms(250);
                                           
                        if(current_prp <= 0){
                        current_prp = 9999;  
                        };                
                    };
                };
    }
    }

     
     
  14. parovoZZ

    parovoZZ Гуру

    А на pc2 нет никаких включённых альтернативных функций?
     
  15. b707

    b707 Гуру

    Suro - ответил на ардуино.ру
     
    Последнее редактирование: 26 дек 2018
  16. parovoZZ

    parovoZZ Гуру

    а здесь чо, не написать??? Стопудово уверен, что это кодавижен фуфло гонит. Чем он так приглядыввается? Ведь есть нормальные профессиональные иде.
     
  17. b707

    b707 Гуру

    частично, конечно, Кодевижн, но скорее "дело было не в бобине" :)
     
    Airbus нравится это.
  18. Airbus

    Airbus Радиохулиган Модератор

    И это естественно Студии всех мастей?
    Это 100%
     
  19. parovoZZ

    parovoZZ Гуру

    Поговаривают, что IAR очень хорош в плане оптимизации кода. Но как он в плане юзабилити - не пробовал.