реклама на сайте
подробности

 
 
21 страниц V  « < 9 10 11 12 13 > »   
Reply to this topicStart new topic
> Изменение текста программы при смене компилятора и чипа
XVR
сообщение Jan 7 2011, 14:01
Сообщение #151


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(RW6MKA @ Jan 7 2011, 18:54) *
Так и не понял как это сделать в студии. sad.gif
В вашем povorot2.rar файл Povorot2.lss
Цитата
Да, а оптимизация то отключена blink.gif
Видимо эта оптимизация не отключается rolleyes.gif

Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jan 7 2011, 14:58
Сообщение #152


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Во время работы отладчика Vew->Disassembler. А ещё кнопочка соответствующая есть на панели инструментов. Правее брэйкпоинтов...у меня получается предпоследняя


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Jan 7 2011, 16:16
Сообщение #153


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Когда выполняется if (N > 48) { Povorot = Rstop; и включена кнопка поворота вправо выключается реле, напряжение на датчике пропадает N становится <1,кнопка то по прежнему нажата и реле включается. Все мозги поломал как это обойти. wacko.gif
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jan 7 2011, 21:40
Сообщение #154


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Ну вы же состояние не выставляете, что уже дальше крутить некуда. Оно должно один раз выставиться и больше на кнопку не реагировать. Только в другую сторону крутить должно.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jan 8 2011, 00:48
Сообщение #155


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Блин, надо вам подарок Рождественский сделать ))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Jan 9 2011, 16:11
Сообщение #156


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Вот последний результат моего мучения. blush.gif Прогонял всяко разно вроде нигде ошибок не нашел но... Залил в железо. Реле работы включилось сразу(на PIND6 почемуто 0), а при нажатии на поворот влево реле реверса начинает трещать.Прикрепленный файл  Povorot2.rar ( 15.95 килобайт ) Кол-во скачиваний: 57
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Jan 9 2011, 17:12
Сообщение #157


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Вот. Свершилось. 08.gif Поменял PIN6 на PIN5(S0 на S1) и после прошивки всё заработало как надо. Видимо во время моих эксперементов лёг пин6 и при его программной замене на пин5 всё нормально отработало. Всем огромное спасибо за оказаное содействие, и отдельный огромный респект sigmaN a14.gif за проявленное долготерпение. На этом, конечно, проект не закрываю, и буду рад подсказкам в его дальнейшем усовершенствовании. Код конечно требует дальнейшей шлифовки(кстати подскажите что в нём можно улучшить), но главная задача на будущее это управление этой схемой через компьютер.(если такое возможно с этим МК).
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jan 9 2011, 18:13
Сообщение #158


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



рад за вас ))
и что, даже нормально отслеживает положение в железе???
что-то я посмотрел на это всё дело по внимательнее...не нравится мне ни функция Analog, ни схема включения конденсатора....
Код
uint16_t Analog(void) {         //используем аналоговый компаратор для замера времени заряда кондёра
        OffBit(DDRB, 0);         //переводим 0 выход порта В в третье состояние
        TCNT0 = 0;              //очистим счётчик-накопитель
        TH = 0;
        OnBit(TCCR0B, CS01);             //включаем таймер0 с пределителем CLK/8
        OnBit(DDRB,7);          //включить транзистор  //КАК ЖЕ ВКЛЮЧИТЬ ТО? ПРОСТО ВЫСТАВИВ НАПРАВЛЕНИЕ ПИНА В OUT??
        while(!(ACSR &(1 << ACO)));//ждём изменения состояния бита АСО на выходе компаратора
        OffBit(TCCR0B, CS01);             //выключаем таймер
        OffBit(DDRB, 7);         //выключаем транзистор //ОПЯТЬ ЖЕ КАК ВЫКЛЮЧИТЬ? ВЫСТАВИВ ПИН В INPUT?
        OnBit(DDRB, 0);          //разряжаем кондёр  // НУ ТУТ ЕЩЁ СОГЛАСЕН
        _delay_ms(2);           //время для разряда кондёра //ЭТО ВРЕМЯ КАЖЕТСЯ МНЕ ОГРОМНЫМ ))
        return(TH << 8 | TCNT0);   //возвращаем результат замера времени
}
И результаты ваши весьма линейные, тоже как-то не дают мне покоя.....


Цитата
(кстати подскажите что в нём можно улучшить)
в качестве Рождественского подарка готовлю вам рабочий пример с той целью, чтобы вы сами посмотрели и поняли разницу ))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jan 9 2011, 23:45
Сообщение #159


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



может как-то так его подключим??
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Jan 10 2011, 00:31
Сообщение #160


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Код
...........
        OnBit(DDRB,7);          //включить транзистор  //КАК ЖЕ ВКЛЮЧИТЬ ТО? ПРОСТО ВЫСТАВИВ НАПРАВЛЕНИЕ ПИНА В OUT??
        .........
        OffBit(DDRB, 7);         //выключаем транзистор //ОПЯТЬ ЖЕ КАК ВЫКЛЮЧИТЬ? ВЫСТАВИВ ПИН В INPUT?
        ........
Да, ведь PORTD7 по умолчанию=0 т.е. получается выход с уровнем 0.База на массу и транзистор открывается, убираем массу с базы и транзисторный ключ закрывается. На счёт задержки я с вами согласен, можно обойтись и 1 ms(наше максимальное время заряда а соответственно и разряда 0.544ms)
Цитата
И результаты ваши весьма линейные, тоже как-то не дают мне покоя.....
Мне тоже)), но факты. Я не поленился таки собрал битовый индикатор и на реальной схеме при всех рабочих параметрах посчитал тики.Блин,не может быть но результат линейный.По вращению переменника(его сектор поворота разбил на одинаковые сегменты) индикация тоже равномерно-линейная.
Цитата
в качестве Рождественского подарка готовлю вам рабочий пример с той целью, чтобы вы сами посмотрели и поняли разницу ))
Буду премного благодарен))

Да,такой вот ещё вопрос.А как можно применить вместо датчика напряжения и компаратора-оптопару и диск с прорезями(ну типа валкодера мышки)?

Сообщение отредактировал RW6MKA - Jan 10 2011, 00:19
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jan 10 2011, 00:43
Сообщение #161


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



кстати да, я тут подумал - транзистор же до определенного момента держит ток константой, а на резисторе ток падает по мере заряда кондера.
поэтому хороший кусок получается линейным.
По результатам моделирования в протеусе(с данным типом транзистора) получается линейная характеристика аж до 4.5В

А ещё у меня почему-то в симуляторе ваш кондер вообще не работает. Только после того, как я заменяю его каким-то другим аналогичной ёмкости. Ну или вот этим анимированным вариантом, что на скриншоте в предыдущем посте.

Ладно, в общем разобрался я. Схемотехнику не трогаем. Отличный вариант с транзистором.

Цитата
Да,такой вот ещё вопрос.А как можно применить вместо датчика напряжения и компаратора-оптопару и диск с прорезями(ну типа валкодера мышки)?
не можно, а нужно)))
дохрена готовых продаётся(есть даже по виду как переменный резистор) даже уже с логическим выходом есть. о подключении их к контроллеру тоже много где почитать можно...


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Jan 10 2011, 00:48
Сообщение #162


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Цитата(sigmaN @ Jan 10 2011, 05:45) *
может как-то так его подключим??

Ну если я не ошибаюсь,этот транзистор здесь при включении разряжает конденсатор, а при отключении не припятствует его зарядке через резистор.Принцип тот же самый, только полевик с изолированным затвором будет включаться при 10-15V на затворевот тут вычитал
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jan 10 2011, 01:04
Сообщение #163


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Цитата
На счёт задержки я с вами согласен, можно обойтись и 1 ms(наше максимальное время заряда а соответственно и разряда 0.544ms)
разряжаем то ведь не через транзистор, а через порт контроллера. разрядится в общем он, наверно, как минимум раз в 100 быстрее )))

Цитата
Ну если я не ошибаюсь,этот транзистор здесь при включении разряжает конденсатор, а при отключении не припятствует его зарядке через резистор.Принцип тот же самый, только полевик с изолированным затвором будет включаться при 10-15V на затворевот тут вычитал

Полевик этот - N-channel с изолированным затвором и ещё к тому-же Logic level )
И принципе не тот-же самый, что в Вашей схеме. В Вашей схеме зарядка идет ЧЕРЕЗ ТРАНЗИСТОР, а резистор в цепи базы ограничивает максимальный ток коллектора. При этом до тех пор, пока конденсатор, заряжаясь, пытается создать ток больший - транзистор его ограничивает верхним пределом(заданным резистором базы). Это есть его свойство. Биполярный транзистор - токовый прибор и имеет заданное соотношение ток базы/ток коллектора(мало зависящее от напряжения коллектор-эмиттер). Вот поэтому то он и даёт нам линейность, что ток там константный держится.

А так как я предложил подключить - характеристика будет самая что ни на есть нелинейная, что только добавит забот. В топку её кароче))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jan 12 2011, 07:43
Сообщение #164


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Как-то что-то я не пойму, оно под отладчиком всегда так странным образом подглючивает индикацию и измеритель положения??

Но если чё будет глючить и в железе - отладим... может чего и я там упустил...
более странными есть глюки индикации, с этим измерением времени там могут быть косяки при работе UART(из за прерываний)
но по идее то прерывание компаратора должно иметь более высокий приоритет, хотя я не уверен есть ли приоритеты в AVR....

ну в общем потестируйте в железе, а там видно будет...

снабжать кода подробными каментами было выше моих сил... может потом.. или сюда вопросы )
Прикрепленные файлы
Прикрепленный файл  povorotV2_12_01_2011_.rar ( 45.14 килобайт ) Кол-во скачиваний: 11
 


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
RW6MKA
сообщение Jan 12 2011, 16:53
Сообщение #165


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 25-10-10
Из: Ростовская обл.
Пользователь №: 60 401



Да-а-а! А стоило ли так всё усложнять? Схема и устройсво в целом не требуют высокой точности и по моему не стоит затрачивать на такое простое устройство столько сил и времени)) Залил я всё в железо, но результат пока нулевой(( Да, я так понял выводы управления реле поменялись? Жаль послезавтра на вахту, возьму с собой все исходники буду курить. Пока на первый взгляд всё непонятно-запутанно, но я думаю всё гораздо проще, чем кажется. UART включили для вывода инфо?Функции сделали самостоятельными и поместили в заголовочные файлы?
Go to the top of the page
 
+Quote Post

21 страниц V  « < 9 10 11 12 13 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 07:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01505 секунд с 7
ELECTRONIX ©2004-2016