Помогите пожалуйста по проекту на attiny2313

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

Здраствуйте, создал проект в avr studio 4 на тини 2313 контролер откатных ворот, при семуляции на AVRstudio все пашет, а ка только hex загружаю в Proteus 7.7 схема контролер отказываеться работать - загружал в готовый девайс, шил внутресхемно, контролер вообще не реагирует, помогите пожалуйста :cry:
проект и схему прилогаю
может что fuse'ах напутал?
Вложения
Vrata.rar
Проект
(428.62 КБ) 226 скачиваний
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

Немного подправил, теперь функция открытия пашет, но функция закрытия в Proteus не пашет? в чем проблема ума не прилажу? В контролер не пробывал зашивать.
Вложения
Vrata.rar
Исправленный проект
(428.78 КБ) 197 скачиваний
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
Axon
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Вс дек 23, 2007 20:16:58
Откуда: Днепропетровск
Контактная информация:

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение Axon »

Код: Выделить всё

st1:
   sbis PinD,0                   ; Проверяем кнопку "открыть"
   rjmp open                     ; если нажата переходим к процедуре открывания
   rjmp st2

sbis вместо sbic

Код: Выделить всё

st2:   
   sbis PinD,1                   ; Проверяем кнопку "закрыть"
   rcall close                   ; если нажата переходим к процедуре закрывания
   rjmp st1                      ; Возвращаемся в процедуру проверки кнопок

sbis вместо sbic

Код: Выделить всё

   sbic PinD,2                   ; Проверяем концевик закрытия
   rjmp cl1                      ; если не сработал продолжаем закрывать

sbic вместо sbis
Проверяйте, работает как нужно или нет?
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

Axon писал(а):

Код: Выделить всё

st1:
   sbis PinD,0                   ; Проверяем кнопку "открыть"
   rjmp open                     ; если нажата переходим к процедуре открывания
   rjmp st2

sbis вместо sbic

Код: Выделить всё

st2:   
   sbis PinD,1                   ; Проверяем кнопку "закрыть"
   rcall close                   ; если нажата переходим к процедуре закрывания
   rjmp st1                      ; Возвращаемся в процедуру проверки кнопок

sbis вместо sbic

Код: Выделить всё

   sbic PinD,2                   ; Проверяем концевик закрытия
   rjmp cl1                      ; если не сработал продолжаем закрывать

sbic вместо sbis
Проверяйте, работает как нужно или нет?

Axon большое спасибо :beer: , совсем запутался в командах, такие мелочи пропустил, в протеусе все заработало, теперь буду шить МК, как проверю отпишусь! :))
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

кто подскажет как зделать регулируемую задержку?
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
Axon
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Вс дек 23, 2007 20:16:58
Откуда: Днепропетровск
Контактная информация:

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение Axon »

Где именно? С помощью таймера можно.
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

Да с помошью теймера! только как зделать что бы задержку можно было изменять? и можно ли отправить avr в powe_doun после выполнения функции, и чтобы он запускался от поступления команд на порта PD0 и PD1, может через прерывания?
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
Axon
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Вс дек 23, 2007 20:16:58
Откуда: Днепропетровск
Контактная информация:

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение Axon »

nem-victor писал(а):Да с помошью теймера! только как зделать что бы задержку можно было изменять?

Конечно можно. Можно изменением делителя частоты, можно изменением значение в регистре сравнения.
и можно ли отправить avr в powe_doun после выполнения функции, и чтобы он запускался от поступления команд на порта PD0 и PD1, может через прерывания?

Зачем его отправлять, если он микроамперы потребляет? Но если так прям обязательно - нужно даташит читать.
Изображение
Аватара пользователя
nictrace
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вс янв 11, 2009 09:29:08
Откуда: Ярославль
Контактная информация:

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nictrace »

nem-victor писал(а):кто подскажет как зделать регулируемую задержку?


что-то я там никаких средств регулировки, кроме 2-х кнопок не нашел.
но можно обойтись и кнопками. Например, длительное, в пару секунд нажатие будет переводить в режим настройки времени, а лампа будет мигать столько раз, сколько выбрано секунд...
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева! :)
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

Axon писал(а):
nem-victor писал(а):Да с помошью теймера! только как зделать что бы задержку можно было изменять?

Конечно можно. Можно изменением делителя частоты, можно изменением значение в регистре сравнения.
и можно ли отправить avr в powe_doun после выполнения функции, и чтобы он запускался от поступления команд на порта PD0 и PD1, может через прерывания?

Зачем его отправлять, если он микроамперы потребляет? Но если так прям обязательно - нужно даташит читать.
Изображение


спасибо Axon я уже прочитал об этом т.е. о внешних прерываниях, вот теперь про задержку, есть ли какиенибудь шаблоны задержек, а то в примерах из книг трудно определить, вот у меня задержка в программе тоже взята из книги Белова, но мне нужно управлять временем задержки, т.е. 200 мкс для борьбы с дребезгом контактов, 500 мкс для последовательного выполнения команд, ну и гдето 1 с для отключения замка, после открывания ворот, на Си там то понятно можно написать просто время задержки и все, а на асемблере все по тругому, приходиться писать подпрограммы задержки, так что мне придется писать 3 подпрограммы задержки для каждого времени?
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

nictrace писал(а):
nem-victor писал(а):кто подскажет как зделать регулируемую задержку?


что-то я там никаких средств регулировки, кроме 2-х кнопок не нашел.
но можно обойтись и кнопками. Например, длительное, в пару секунд нажатие будет переводить в режим настройки времени, а лампа будет мигать столько раз, сколько выбрано секунд...


ЭХ наверно не так выразился, хотел бы написать подпрограмму задержки с изменяемым временем задержки, ну чтобы не писать три четыре подпрограммы а обойтись одной
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

ребята я знаю что на языке си писать проше, но для меня это пока темный лес, я по тихоньку начинаю изучать по книгам, начал с асемблера так как он для меня более или менее понятен.
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
Axon
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Вс дек 23, 2007 20:16:58
Откуда: Днепропетровск
Контактная информация:

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение Axon »

nem-victor писал(а):спасибо Axon я уже прочитал об этом т.е. о внешних прерываниях, вот теперь про задержку, есть ли какиенибудь шаблоны задержек, а то в примерах из книг трудно определить, вот у меня задержка в программе тоже взята из книги Белова, но мне нужно управлять временем задержки, т.е. 200 мкс для борьбы с дребезгом контактов, 500 мкс для последовательного выполнения команд, ну и гдето 1 с для отключения замка, после открывания ворот, на Си там то понятно можно написать просто время задержки и все, а на асемблере все по тругому, приходиться писать подпрограммы задержки, так что мне придется писать 3 подпрограммы задержки для каждого времени?

200 и 500мкс мало, если мс - то нормально
В простеньких программах я задержку обычно делаю так:
Берется минимальный делитель времени для всех задержек, у вас это 100мс т.е. 200,500,1000 делится на 100.
Создается отдельная подпрограмма задержки, которая будет вызываться через rcall.
Собственно в подпрограмме в начале происходит сброс таймера, его инициализация(занести значения в регистры, настроить делитель, локальное прерывание и т.д.). Далее даём МК команду sei и запускаем таймер. Сразу после запуска таймера ставим хитрую команду
brtc PC-0x01
Собсно эта команда значит, что МК будет всё время проверять флаг T(зациклится на одной команде) пока он не установлен, когда Т установится - пойдут следующие команды. А в векторе прерываний(куда МК пойдет после прерывания таймера) просто ставим set(установка Т флага) а из обработчика он вернется retом от следующего вектора(естессно нужно убедиться что там нету обработчика и стоит просто ret). После brtc PC-0x01 обязательно останавливаем таймер, потом очищаем флаг Т командой clt и теперь можно выйти из нашей подпрограммы задержки. Как сделать 200,500,1000мс - тупо ставим несколько вызовов этой подпрограммы и всё.
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

Axon писал(а):
nem-victor писал(а):спасибо Axon я уже прочитал об этом т.е. о внешних прерываниях, вот теперь про задержку, есть ли какиенибудь шаблоны задержек, а то в примерах из книг трудно определить, вот у меня задержка в программе тоже взята из книги Белова, но мне нужно управлять временем задержки, т.е. 200 мкс для борьбы с дребезгом контактов, 500 мкс для последовательного выполнения команд, ну и гдето 1 с для отключения замка, после открывания ворот, на Си там то понятно можно написать просто время задержки и все, а на асемблере все по тругому, приходиться писать подпрограммы задержки, так что мне придется писать 3 подпрограммы задержки для каждого времени?

200 и 500мкс мало, если мс - то нормально
В простеньких программах я задержку обычно делаю так:
Берется минимальный делитель времени для всех задержек, у вас это 100мс т.е. 200,500,1000 делится на 100.
Создается отдельная подпрограмма задержки, которая будет вызываться через rcall.
Собственно в подпрограмме в начале происходит сброс таймера, его инициализация(занести значения в регистры, настроить делитель, локальное прерывание и т.д.). Далее даём МК команду sei и запускаем таймер. Сразу после запуска таймера ставим хитрую команду
brtc PC-0x01
Собсно эта команда значит, что МК будет всё время проверять флаг T(зациклится на одной команде) пока он не установлен, когда Т установится - пойдут следующие команды. А в векторе прерываний(куда МК пойдет после прерывания таймера) просто ставим set(установка Т флага) а из обработчика он вернется retом от следующего вектора(естессно нужно убедиться что там нету обработчика и стоит просто ret). После brtc PC-0x01 обязательно останавливаем таймер, потом очищаем флаг Т командой clt и теперь можно выйти из нашей подпрограммы задержки. Как сделать 200,500,1000мс - тупо ставим несколько вызовов этой подпрограммы и всё.

да я про мс просто очепятка, да хитро, стоит попробывать
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
Axon
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Вс дек 23, 2007 20:16:58
Откуда: Днепропетровск
Контактная информация:

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение Axon »

nem-victor, да только-что вспомнил что настройка делителя и запускает таймер. Тогда его убираем из инициализации и ставим после sei.
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

зашил прошивку в tiny2313, внутресхемно, фузы выставил с помощью калькулятора фузов, тока как то странно, контролер постоянно в состоянии "закрыть", и сбрасываеться только кнопкой закрыть, хотя по программе обе кнопки должны сбрасывать контролер в начальное положение, и выход подсветки не пашет, что ж буду дальше копаться в програме
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
Axon
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Вс дек 23, 2007 20:16:58
Откуда: Днепропетровск
Контактная информация:

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение Axon »

nem-victor писал(а):зашил прошивку в tiny2313, внутресхемно, фузы выставил с помощью калькулятора фузов, тока как то странно, контролер постоянно в состоянии "закрыть", и сбрасываеться только кнопкой закрыть, хотя по программе обе кнопки должны сбрасывать контролер в начальное положение, и выход подсветки не пашет, что ж буду дальше копаться в програме

Если что-то совсем не получиться - сюда кидайте.
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

Axon писал(а):
nem-victor писал(а):зашил прошивку в tiny2313, внутресхемно, фузы выставил с помощью калькулятора фузов, тока как то странно, контролер постоянно в состоянии "закрыть", и сбрасываеться только кнопкой закрыть, хотя по программе обе кнопки должны сбрасывать контролер в начальное положение, и выход подсветки не пашет, что ж буду дальше копаться в програме

Если что-то совсем не получиться - сюда кидайте.

Хорошо, немного касяк в плате был, как всегда развел на скорую руку, да есче хочу поменять подпрограмму задержки, по позже скину
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

Здрасти, есть вопросик небольшой можно ли с помощью команды .equ присваивать к ччислам разные слова, ну например

.equ bopen = 0
.equ svetON = 0
не будет ли это считаться ошибкой? :dont_know:
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Аватара пользователя
nem-victor
Нашел транзистор. Понюхал.
Сообщения: 163
Зарегистрирован: Чт фев 04, 2010 21:42:26

Re: Помогите пожалуйста по проекту на attiny2313

Сообщение nem-victor »

Вот читаю сейчас книгу Ревичь Ю.В. "практическое прагромирование AVR на асемблере" часть 1, нашел про задержку,
только вот команда "suci" это что ? вроде просмотрел все команды не нашел про нее, да и в AVR studio 4 она не опознаеться.
Во имя Отца, Сына и Святого духа. ENTER
[url=http://userbars.ru/][img]http://i.imgur.com/5eUoK.png[/img][/url]
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»