Суббота, 27.04.2024, 05:27
| RSS
[SEARCH_TITLE]
[SEARCH_FORM]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 3 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Архив - только для чтения
Форум » Программирование » Программирование на языке С, Бейсик и Асемблер » Вопросы по программированию в Bascom AVR (Например как работать с шимом, ацп и т. д.)
Вопросы по программированию в Bascom AVR
sashaДата: Вторник, 08.12.2009, 13:19 | Сообщение # 31








Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
да) что именно не поняли?

-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
 
pashteetДата: Вторник, 08.12.2009, 22:31 | Сообщение # 32








Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
немогу разобраться в коде, вы бы хоть порты обозвали как-нибудь, а то все время путается в глазах
 
sashaДата: Пятница, 11.12.2009, 11:39 | Сообщение # 33








Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
ну я ж напсал описание каждого порта...

Добавлено (11.12.2009, 11:15)
---------------------------------------------
вот начал изучить прерывание...
прочитал здесь http://avr.easycoding.org/projects/bascom_lessons/ ... и написал прмерчик для меги 8 прерывание

Code
$regfile = "m8def.dat"
$crystal = 16000000

Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Output
Config Pind.3 = Input
Config Int0 = Falling

  On Int0 Stopbutton

    Enable Interrupts
Enable Int0

Do
   Portd.0 = 1
   Portd.1 = 0
   Waitms 50
   Portd.1 = 1
   Portd.0 = 0
   Waitms 50
Loop
Stopbutton:
Portd.2 = 1
Return

End

хотел так... на портах Д0 и Д1 мигают светодиоды последовательно с заддержкой 50мс... када нажимаю Д3 должен гореть Д2... но никак не работает... мигают Д0 и Д1 и все... на кнопку не реагирует.. где ошибка? подскажите

Добавлено (11.12.2009, 11:39)
---------------------------------------------
вот... все еще не понял...

Code
$regfile = "m8def.dat"
$crystal = 16000000

Config Portd.0 = Output
Config Portd.1 = Output
Config Pind.2 = Input
Config Portd.3 = Output
Config Int0 = Falling
Portd.1 = 1

Dim Wtime As Byte

  On Int0 Stopbutton
  Cls
  Wtime = 100
    Enable Interrupts
Enable Int0

Do
   Set Portd.0
   Waitms Wtime
   Reset Portd.0
   Waitms Wtime
Loop
Stopbutton:
Portd.0 = 0

Return

End

на порте Д0 мигает светодиод... но по нажатию кнопки ниче не реагирует..=( где ошибка? а хотел по нажатию кнопки светодиод должен гаснуть...


-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
 
pashteetДата: Пятница, 11.12.2009, 14:30 | Сообщение # 34








Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
а ты нажми идержи
если не поможет, то:
Code
Config Int0 = Falling
On Int0 Stopbutton Nosave
Enable Int0

чет я непойму ты кнопку чтоли к Portd.1 одной ногой подключаешь, а второй к Portd.2 ? при этом Portd.1 = 1 так онож и небудет работать, у тебя прерывания по спаду, это значит, что когда нога ложится на 0, тогда происходит прерывание, а при нажатии кнопки у тебя нога соединяется с Portd.1 , а там +Vcc, соответственно прерывания не происходит
 
sashaДата: Пятница, 11.12.2009, 17:06 | Сообщение # 35








Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
неа ... не идет... мигает все еще...
Code

$regfile = "m8def.dat"
$crystal = 16000000

Config Portd.0 = Output
Config Portd.1 = Output
Config Pind.2 = Input
Config Int0 = Falling

Dim Wtime As Byte

   On Int0 Stopbutton Nosave

   Cls

   Wtime = 100

   Enable Interrupts

Enable Int0

Do
    Set Portd.0
    Waitms Wtime
    Reset Portd.0
    Waitms Wtime
Loop
Stopbutton:
Portd.1 = 1

Return

End

и вот так не работает... после баттона я задаю ту задачу которая при нажатий кнопки бует выполнятся?

Добавлено (11.12.2009, 17:06)
---------------------------------------------
по этой проге мигает светодиод, када нажимаю кнопку ниче не происходит... када на 5Вподключаю портд.2 с главным светодиодом вместе горит и светодиод на ПортД.1... не понял ничего... и не гаснит... над ток заново запускать...


-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-

Сообщение отредактировал sasha - Пятница, 11.12.2009, 16:59
 
pashteetДата: Пятница, 11.12.2009, 22:04 | Сообщение # 36








Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
дык я ж написал почему не работает smile3
Я так понял ты вот этот код взял за основу:
Code
$regfile = "2313def.dat"
$crystal = 4000000
Config Pind.6 = Output
Config Pind.2 = Input
Config Int0 = Falling
.
.
.
Stopbutton:
     Lcd "stopъ!"
Return
End
Pind.2 настроен на вход. Не забудьте про подтягивающий резистор 10кОм!
Config Int0 = Falling заставляет сработать прерывание по спаду сигнала, т.е. при переходе с высокого уровня на низкий.

вот так должно работать:
Code
    
$regfile = "m8def.dat"    
$crystal = 16000000
Config Pind.0 = Output '- сюда светодиод
Config Pind.2 = Input '- это кнопка
Config Int0 = Falling
Dim Wtime As Byte
On Int0 Stopbutton Nosave'
Wtime = 100
Enable Interrupts
Enable Int0
Do
     Set Portd.0
     Waitms Wtime
     Reset Portd.0
     Waitms Wtime
Loop
Stopbutton:
     Reset Portd.0 '- при нажатой кнопке светодиод небудет гореть
Return
End

Не забудьте про подтягивающий резистор 10кОм! - вот это для кого написано? без этого работать не будет!


Сообщение отредактировал pashteet - Пятница, 11.12.2009, 22:04
 
sashaДата: Суббота, 12.12.2009, 07:57 | Сообщение # 37








Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
все еще мигает только...=(не реагирует на кнопку...

-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
 
pashteetДата: Понедельник, 04.01.2010, 23:43 | Сообщение # 38








Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
Ребят, подскажите, как с помощью МК можно иметировать сигнал пульта от телека?
Есть задача сделать свой пульт на МК, незнаю как под написать, чтоб МК формировал сигнал для светодиода
 
DeepBlackДата: Вторник, 05.01.2010, 10:55 | Сообщение # 39








Язык программированя: C/C++
Зарегистрирован 27.07.2009
Группа: Модераторы
Сообщений: 189
Город: Зеленоград
Статус: Offline
Пульт предполагается использовать с каким-либо промышленным устройством или с разрабатываемым?
Если с промышленным, то может сложнее оказаться...
На мой взгляд, есть смысл ознакомиться с принципом работы протокола RC5. Если конечно, в баскоме нет такой какой-нибудь функции специальной, уже за нас написанной.
Если писать с нуля, то я бы сделал примерно следующее:
1.Прописал функции для отправки 0 и 1. (надо выдержать по таймеру период одного бита 1.778мс, в середине периода, если обрабатываем 0, то смена уровня 0->1, если единичка то 1->0 - так кажется...)
2.Записал в память как константы строки типа 1011101110001...110. (правила формирования кода в инете найти можно - стартовые биты, адрес, команда, возможно контрольная сумма)
3.А при нажатии кнопки брал бы нужную строку, в цикле прогонял бы ее от первого до последнего символа, и в зависимости от символа вызывал бы нужную функцию из п.1
Как-то так этот вопрос вижу
Вот тут еще ссылочку нашел, там более или менее что-то описано http://fi-com.ru/mcu/rc5.htm
 
pashteetДата: Вторник, 05.01.2010, 12:05 | Сообщение # 40








Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
Спасибо!
Пульт и приемник будут разрабатываться свои, протокол RC5 выбран из-за готовых библиотек в баскоме.
Вроде нашел решение этой проблемы, в баскоме есть команда RC5SEND, с помощью ее хочу передавать сигнал
 
ALHIMIKДата: Среда, 06.01.2010, 12:07 | Сообщение # 41








Язык программированя: C - вот Истинная вера для МК
Зарегистрирован 23.12.2008
Группа: Опытные
Сообщений: 83
Город: СПб
Статус: Offline
можно сделать на аппаратном уарте(скоро займусь сам)
на рх контроллера выход тсопа
на тх мк светик , а лучше 2х через н канальный полевик
скорость уарта == частота тсопа
кадр - старт бит 8бит смысловых чётность\не чётность 1 стоп = 11 бит пачка для тсопа
 
pashteetДата: Среда, 06.01.2010, 18:48 | Сообщение # 42








Зарегистрирован 21.09.2009
Группа: Новички
Сообщений: 225
Город: Волжский
Статус: Offline
тоже хороший вариант smile3
 
ALHIMIKДата: Четверг, 07.01.2010, 00:14 | Сообщение # 43








Язык программированя: C - вот Истинная вера для МК
Зарегистрирован 23.12.2008
Группа: Опытные
Сообщений: 83
Город: СПб
Статус: Offline
а главное не сильно занимает ЦПУ dance4
 
DeepBlackДата: Четверг, 07.01.2010, 13:04 | Сообщение # 44








Язык программированя: C/C++
Зарегистрирован 27.07.2009
Группа: Модераторы
Сообщений: 189
Город: Зеленоград
Статус: Offline
ALHIMIK, а на выход TSOP наверно еще надо инвертор поставить... он же принятую с ИК 1 низким лог. уровнем передавать в МК будет.
 
ALHIMIKДата: Суббота, 09.01.2010, 19:23 | Сообщение # 45








Язык программированя: C - вот Истинная вера для МК
Зарегистрирован 23.12.2008
Группа: Опытные
Сообщений: 83
Город: СПб
Статус: Offline
нет
выход передатчика подключён к затвору Н канальному полевику те пока нет старт бита на тх 1
трас закрыт светик не мигает
на тсопе тоже 1
транзистор открывается от 0 на затворе
светик зажигается
на выходе тсоп 0 wink
если подключать светик на прямую то анодом на питание (через резистор) катодом на мк

Добавлено (09.01.2010, 19:23)
---------------------------------------------
но так скорей всего упадёт дальнобойность

 
Форум » Программирование » Программирование на языке С, Бейсик и Асемблер » Вопросы по программированию в Bascom AVR (Например как работать с шимом, ацп и т. д.)
  • Страница 3 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск: