roboforum.ru

Технический форум по робототехнике.

 

Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение nest » 29 июл 2009, 13:45

Zeus писал(а):внутреннюю структуру микроконтроллера все равно надо знать?

я бы советовал писать сразу на асм.
тем более, что внутреннюю структуру микроконтроллера все равно знать надо, а с асм это получится быстрее всего.
Аватара пользователя
nest
 
Сообщения: 977
Зарегистрирован: 21 янв 2005, 12:16
Откуда: Germany
Предупреждения: -4
прог. языки: asm

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение blindman » 29 июл 2009, 13:52

Советы даны, на этом и остановимся. Даже не пытайтесь здесь устроить очередную свару C vs ASM vs Basic :x Отвечать на мой пост тоже не надо
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение Yuraskas » 09 окт 2009, 10:13

Тема вроде про баском, надеюсь, начинающему можно задавать здесь вопросы...
Немного непонятен момент с включением внутренней подтяжки на ноге сконфигурированной на вход, т.е. пишу Config PINC.0 = Input, смотрю в протеусе - пин находится в состоянии Z. Посмортрел код в АВР-студии, включения подтяжки вроде не нашел... Т.е. подтяжка не включается?
Ты приснись ей, ангел белый, пусть ей будет хорошо...
Аватара пользователя
Yuraskas
 
Сообщения: 119
Зарегистрирован: 20 июл 2009, 13:59
Откуда: Канск

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение galex1981 » 09 окт 2009, 10:20

Подтяжка не включается...
Последний раз редактировалось galex1981 09 окт 2009, 10:58, всего редактировалось 1 раз.
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение EdGull » 09 окт 2009, 10:36

PINC.0 = Input просто включает ногу на вход, без подтяжки
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение avr123.nm.ru » 09 окт 2009, 10:37

Yuraskas писал(а):Т.е. подтяжка не включается?


Посмотрите устройство ножки AVR , его вцелом и его портов
Вложения
avr.png
устройство AVR и его портов http://avr123.nm.ru/02.htm
Последний раз редактировалось avr123.nm.ru 09 окт 2009, 11:20, всего редактировалось 1 раз.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение Yuraskas » 09 окт 2009, 11:14

2 avr123: Смотрел, и не единожды, то что подтяжка включается установкой бита в регистре PORT - знаю, просто я по наивности своей думал что баском сам подтяжку включает, когда конфигурируешь ногу на вход, :oops: оказалось - был не прав, что и подтвердил EdGull, спасибо ему за это. Значит для подтяжки нужно сделать еще Set PORTC.0
Ты приснись ей, ангел белый, пусть ей будет хорошо...
Аватара пользователя
Yuraskas
 
Сообщения: 119
Зарегистрирован: 20 июл 2009, 13:59
Откуда: Канск

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение pashteet » 16 окт 2009, 23:24

Yuraskas писал(а):Тема вроде про баском, надеюсь, начинающему можно задавать здесь вопросы...
Немного непонятен момент с включением внутренней подтяжки на ноге сконфигурированной на вход, т.е. пишу Config PINC.0 = Input, смотрю в протеусе - пин находится в состоянии Z. Посмортрел код в АВР-студии, включения подтяжки вроде не нашел... Т.е. подтяжка не включается?

Меня когда-то тоже интересовал вопрос подтяжки на баскоме viewtopic.php?f=16&t=6714 советую прочитать в ознакомительных целях
Аватара пользователя
pashteet
 
Сообщения: 930
Зарегистрирован: 28 авг 2009, 12:50
Откуда: Волжский
Skype: pashok0988
ФИО: Павел Петрович

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение Cut » 13 июл 2010, 18:04

встретил в такую строчку - $prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить
Что аткое фусибиты? , что такое "$prog"? Что такое &HFF , &HE4 , &HD9 , &H00???
Аватара пользователя
Cut
 
Сообщения: 2
Зарегистрирован: 11 июл 2010, 13:59

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение space » 25 июн 2011, 14:30

Есть ли в баском, что-то типо игнорирования условия в программе? Суть проблемы в том, что у меня в программе сделано одно действие, которое исполняется при разных условиях. Вообщем вот:

Код: Выделить всёРазвернуть
Sub Вов

Tem1 = A
Tem2 = B

If Temp => Tem1 Then : Реле = 1 : End If

If Temp <= Tem2 Then : Реле = 0 : End If

Вклвыкл_Реле:

Toggle Реле                                                 'Инверсия логического уровня на ножке PORTD.4

Return                                                      'Возврат из подпрограммы в точку где произошло прерывание

End Sub

Реле включается при определённой температуре и также отключается. Но включается и отключается оно также и при нажатие на клавишу. Так вот когда нажимаю на клавишу реле включается и тут же отключается из-за условия:
Код: Выделить всёРазвернуть
If Temp <= Tem2 Then : Реле = 0 : End If

Как бы сделать так чтобы это условие игнорировалось при нажатие клавиши?
Аватара пользователя
space
 
Сообщения: 548
Зарегистрирован: 17 июн 2007, 23:44
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение galex1981 » 25 июн 2011, 14:39

А так не получается?
Код: Выделить всёРазвернуть
If Temp <= Tem2 And Кнопка <> нажата Then : Реле = 0 : End If


Где "Кнопка <> нажата" условие ненажатой кнопки
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение space » 25 июн 2011, 16:09

дело в том, что клавиша без Фиксации. Нажал реле включилось, снова нажал, реле выключилось. То есть сделал за счёт прерываний

Код: Выделить всёРазвернуть
Set Portd.2 : Вкл_выкл Alias Pind.2                         'Клавиша для принудительного вкл. и выкл. реле 
Config Portd.4 = Output : Реле Alias Portd.4   

Config Int0 = Falling                                       'Разрешаем прерывания по спаду напряжения On Int0
On Int0 Вклвыкл_Реле                                        'Задаём метку перехода по прерыванию
Enable Interrupts                                           'Разрешаем прерывания
Enable Int0                                                 'Разрешаем прерывания на ножке int0


Sub Вов

Tem1 = A
Tem2 = B

If Temp => Tem1 Then : Реле = 1 : End If

If Temp <= Tem2 Then : Реле = 0 : End If

Вклвыкл_Реле:

Toggle Реле                                                 'Инверсия логического уровня на ножке PORTD.4

Return                                                      'Возврат из подпрограммы в точку где произошло прерывание

End Sub

вот так более полно выглядит код
Аватара пользователя
space
 
Сообщения: 548
Зарегистрирован: 17 июн 2007, 23:44
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение galex1981 » 25 июн 2011, 19:35

Что то основной цикл программы не вижу. А вообще в основном цикле можно просматривать нажатие/отпускание клавиши по пину pind.2
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение space » 26 июн 2011, 16:21

не стал его просто выкладывать, а так вот:
Код: Выделить всёРазвернуть
Do
Call Температура : Call Вов
Locate 1 , 1
Lcd Time$ ; "**" ; Celsium ; "**"
Locate 2 , 1
Lcd Date$ ; "**" ; Fahrenhei ; "**"
If Меню = 0 Then : Gosub МенюП : End If
Loop


это можно, только что мне это даст не совсем понимаю?
Аватара пользователя
space
 
Сообщения: 548
Зарегистрирован: 17 июн 2007, 23:44
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич

Re: Учебный курс по Bascom AVR Basic для ЧАЙНИКОВ

Сообщение space » 26 июн 2011, 20:39

galex1981, спасиб :Yahoo!: Вообщем подумал, как можно использовать то что ты предложил и нашёл решение. Только в цикле фиксировал лишь нажатие клавиши за счёт команды:
Код: Выделить всёРазвернуть
Debounce 

При удержание клавиши просто осущевствляю переход в другой цикл, котором убрал процеду по вкл. и выкл. реле за счёт температуры, и за счёт нажатие клавиши могу вкл. и выкл. реле. Может громоздка, но ведь работает :D
Код: Выделить всёРазвернуть
'*****************************Оcновной_цикл_программы***************************

Вкл._от_перемены_температуры:
Disable Int0                                                'Запрещаем прерывания на Int0
Sound Пищалка , 110 , 213

'*******************************************************************************

Do

Call Температура                                            'Вызвать подпрограмму(процедуру) "Температура"
Call Вов                                                    'Вызвать подпрограмму(процедуру) "Вов"
Locate 1 , 1
Lcd Time$ ; "**" ; Celsium ; "***"
Locate 2 , 1
Lcd Date$ ; "**" ; Fahrenhei ; "**"
If Меню = 0 Then : Gosub МенюП : End If                     'При нажатие клавиши меню, переходим на метку МенюП
Debounce Вкл_выкл , 0 , Вкл._от_клавиши
Loop

'*******************************************************************************

Вкл._от_клавиши:
Enable Int0                                                 'Разрешаем прерывания на Int0
Sound Пищалка , 140 , 299

'*******************************************************************************

Do
Call Температура                                            'Вызвать подпрограмму(процедуру) "Температура"
Locate 1 , 1
Lcd Time$ ; "**" ; Celsium ; "***"
Locate 2 , 1
Lcd Date$ ; "**" ; Fahrenhei ; "**"
If Меню = 0 Then : Gosub МенюП : End If                     'При нажатие клавиши меню, переходим на метку МенюП
Debounce Вкл_выкл , 0 , Вкл._от_перемены_температуры
Loop

'*******************************************************************************
Аватара пользователя
space
 
Сообщения: 548
Зарегистрирован: 17 июн 2007, 23:44
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич

Пред.След.

Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Mail.ru counter