Непонятная ошибка..
- Войдите на сайт для отправки комментариев
Втр, 25/12/2018 - 16:14
Никак не могу понять как это возможно.
Когда подаю питание , программа попадает в этот цыкл и не выходит из него.
В чем может быть проблема ? (есть еще на плате 1kOM Pull-Up резистор на +5V , и проверяю тестером тот же пин и на него стоит 1)

А что, кода не будет?
А что, кода не будет?
С кодом то многие могут, Вы попробуте с хрустальным шаром
Ой. A что такое prp? У меня на эту запись ошибку дает.
Mало того, что prp, так еще и цыкл. Хана контроллеру.
там у меня есть строка
#define prp 2
Ну, значит, кода не будет. Расходимся.
Вы попробуте с хрустальным шаром
Хрустальные шары запрещены, а я - человек дисциплинированный.
Вот ни хрена в цыклах не сечёте, а набижали тут лишь бы человека потроллить!
Кстати, ТСу и на амперке воздушный автобус тоже за код сказал, но он и там тупит и упирается рогом. Рыцыдивист, аднака!
О, кстати, а этот цыкл мы уже видели полтора месяца назад - #1 Ну, точня - рыцыдивист!
О, кстати, а этот цыкл мы уже видели полтора месяца назад - #1 Ну, точня - рыцыдивист!
и ни одного из данных тогда советов, похоже, ТС не выполнил. Зачем снова пришел?
Ну, я ж говорю - рецидивист.
А советы - так, судя по тому, как он выполняет совет вставить код, ...
#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; }; }; }; } }будет очень интересен твой ответ
будет очень интересен твой ответ
Чей? Мой или чей-то другой?
а с чево ты это взял b707 ???????
да да твой ворота .
вот и теперь тебе код
а это точно код для ардуины?
а это точно код для ардуины?
Спасибо, что не на Лиспе!
да да твой ворота .
вот и теперь тебе код
1. код не мне, а тебе, мне он не нужен, т.к. у меня проблемы нет, она есть у тебя.
2. ты решил меня поэкзаменовать? Ещё такое заявление и будешь послан на йух (туда же, где уже находятся другие мои экзаменаторы)
3. Да, она действительно входит в "цыкл" стр. 28 и не выходит из него никогда. А ты ожидал другого поведения? В чём твоя проблема, голуба?
Suro, кратенько почитал справку по Кодевизион и делаю вывод. что вы неправильно пользуетесь макросами для пинов
Вот так, как у вас - работать, имхо, не должно:
#define prp 2 if (PINC.prp == 1 ) { ............ }А вот так рекомендует справка по КодеВижиону
#define alarm_input PINA.2 void main(void) { /* test bit 2 input of Port A */ if (alarm_input) { /* place some code here */ }; /* ....... */ }Замечаете, в чем разница? - макросом можно подменить полную запись PINA.2, а только номер бита - нельзя.
Дело в том, что запись в форме PINC.1 - вообще-то недопустима по стандарту языка, поскольку в Си имена переменных, в том числе полей структур, не могут начинаться с цифры. Доступ к битам регистра PIN.2 - это специальное извращение Кодевижине, которое разрешается перед компиляцией через исключение. А когда вы подставляете вместо номера бита макрос - этот механизм перестает работать.
Suro, кратенько почитал справку по Кодевизион и делаю вывод. что вы неправильно пользуетесь макросами для пинов
Вот так, как у вас - работать, имхо, не должно:
#define prp 2 if (PINC.prp == 1 ) { ............ }А вот так рекомендует справка по КодеВижиону
#define alarm_input PINA.2 void main(void) { /* test bit 2 input of Port A */ if (alarm_input) { /* place some code here */ }; /* ....... */ }Замечаете, в чем разница? - макросом можно подменить полную запись PINA.2, а только номер бита - нельзя.
Дело в том, что запись в форме PINC.1 - вообще-то недопустима по стандарту языка, поскольку в Си имена переменных, в том числе полей структур, не могут начинаться с цифры. Доступ к битам регистра PIN.2 - это специальное извращение Кодевижине, которое разрешается перед компиляцией через исключение. А когда вы подставляете вместо номера бита макрос - этот механизм перестает работать.
очень спосибо за ответ ,, буду иметь введу у тчательно прочту справку ,, но вот в чем у меня была проблема ,, надо только НЕ программировать фьюз JTAG (default JTAG = 0 - programmed , надо было только отключить его)