Страница 211 из 304
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср сен 17, 2014 06:37:52
radio-kot
Jonny_3103 писал(а): софтовые часы жутко спешат, использовать DS пока не хочу.
попробуйте часики rtc встроенные в avr - апноут avr107 вроде и есть в примерах студии и cvavr
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср сен 17, 2014 06:47:13
Bear2011
софтовые часы жутко спешат, использовать DS пока не хочу
Можно попробовать добавить часовой кварц как описано тут
http://easyelectronics.ru/avr-uchebnyj- ... jmera.html
Собственно в обработке прерывания можно поставить только часы. А все остнальное в теле программы. Быстродействия хватит
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср сен 17, 2014 13:22:32
edm2007
Собственно, при конфигурации
и работает асинхронный режим таймера. Именно в его обработчике и крутятся служебные переменные _hour, _min и _sec, просто все это остается за кадром.
Есть два очень важных момента при работе с часовым кварцем:
1. Разводка. Дороги, соединяющие кварц с МК должны быть как можно короче (это касается вообще любых кварцев). Корпус кварца хорошо бы соединить с землей.
2. Для надежного запуска кварца без конденсаторов необходимо установить фьюз
CKOPT, в ином случае возможен срыв генерации, нестабильная работа и прочие "радости".
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн сен 22, 2014 16:50:26
rus084
имеется цифровой сигнал , иногда появляются мешающие импульсы короче 200мкс .
Нужно убрать импульсы короче 200мкс и оставить нужные (длиннее 400мкс)
Таким кодом можно решить эту проблему ? Не будет скрытых багов?
Код: Выделить всё
Do
A = portb.0
Waitus 200
If portb.0 = A then portb.1 =A
Loop
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн сен 22, 2014 19:12:48
vem566
rus084 писал(а):Не будет скрытых багов?
Будут. Нужен контроль "правильного" импульса. То есть нужно пытаться не отфильтровать помеху, а наоборот, фиксировать нужную длину.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн сен 22, 2014 20:00:54
rus084
полезный импульс может быть любой длинны .
Тогда использовать таймер нужно :
Во время фронта импульса запускать счетчик импульсов , ждать 300мкс , если счетчик=0 то портб.1 = 1 , ждать 300мкс , портб.1=0
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн сен 22, 2014 20:14:03
vem566
Наверное, если подробней описать проблему, более толковое можно услышать.
Пока на уровне академических исследований. И что означает
rus084 писал(а): импульс может быть любой длинны
От 400 мкс до нескольких суток?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн сен 22, 2014 20:23:41
rus084
до 1мс импульс . Коефициент заполнения около 5% , т.е. Пауза в 20 раз длиннее импульса .
Идея с счетчиком-таймером пока выглядит лучше всего
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт сен 23, 2014 13:14:06
SilentDemon
Приветствую, Товарищи Коты
Изучаю Bascom. Вот
http://cxem.net/mc/mc168.php урок работы с DS1307.
Не понятно что за адреса &HD0, &H00, &HD1, в даташите их не нашел, откуда они взялись и что выполняют?
I2cstart
I2cwbyte
&HD0
I2cwbyte
&H00
I2cstart
I2cwbyte
&HD1
I2crbyte (переменная в которую запишем секунды) , Ack
I2crbyte (переменная в которую запишем минуты) , Ack
I2crbyte (переменная в которую запишем часы) , Ack
I2crbyte (переменная в которую запишем номер дня недели) , Ack
I2crbyte (переменная в которую запишем дату), Ack
I2crbyte (переменная в которую запишем номер месяца) , Ack
I2crbyte (переменная в которую запишем год) , Nack
I2cstop
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт сен 23, 2014 13:36:13
vem566
Это не адреса. Это команды DS1307. Нужно смотреть даташит на нее.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт сен 23, 2014 14:08:52
SilentDemon
I2cstart ' даем режим готовности часам
I2cwbyte &HD0 ' адрес микросхемы
I2cwbyte &H00 ' адрес откуда начачинаем читать данные
I2cstart ' даема сигнал старт на прочтение данных
I2cwbyte &HD1 ' даем понять что готовы принимать данные
I2crbyte Seco , Ack ' ловим секунды
I2crbyte Mine , Ack ' минуты
I2crbyte Hour , Ack ' часы
I2crbyte Day , Ack ' день недели
I2crbyte Dat , Ack ' число месяца
I2crbyte Month , Ack ' месяц
I2crbyte Year , Nack ' год
I2cstop ' закончили
Это адреса, биты чтения и записи.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт сен 23, 2014 15:09:49
vem566
SilentDemon писал(а):I2cwbyte &HD0 ' адрес микросхемы
SilentDemon писал(а):I2cwbyte &HD1 ' даем понять что готовы принимать данные
Согласно даташита, адрес микросхемы это старшие семь бит. А в младшем бите или 0 или 1 в зависимости от направления обмена (запись/чтение). То есть &HD0 это обращение к устройству с адресом 1101000 с сообщением, что следующие передаваемые от ведущего устройства данные будут для записи, а &HD1 соответственно с требованием к этому устройству передать данные ведущему устройству.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт сен 23, 2014 15:31:25
SilentDemon
Понял, почему тогда с DS3231 не работает, ведь адрес тоже 1101000?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт сен 23, 2014 16:42:01
vem566
Адрес тот же, но протокол обмена другой. См. английский даташит стр 16 и 17.
http://datasheets.maximintegrated.com/en/ds/DS3231.pdf
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт сен 23, 2014 17:59:14
SilentDemon
Да вроде одинаковый. Где отличие?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт сен 23, 2014 19:57:36
vem566
Немного попутал в терминах. У 3231 другой байт конфигурации. Помнится мудохался с запуском PCF8583, пока не начал менять этот байт. Разобрался - заработало.
А что конкретно не работает?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт сен 23, 2014 20:18:57
SilentDemon
В Протеусе DS1307 идут как часы на компьютере, а DS3231 начинают отсчет с нуля. Может так и должно быть. Хочу в Sunny_Clock использовать DS3231, но все как один говорят, что без изменения прошивки работать не будет, а вроде как должно?
Вроде разобрался что к чему.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср сен 24, 2014 09:58:54
Paha100
Впал в ступор. Симулирую в Протеусе с Атмегой2560. В программе подаю сигналы на порт B все нормально проходит. Как только эти же сигналы пытаюсь подать на порт H выходит белиберда. Программа для сдвигового регистра 595. Встроенной функцией Shiftout не пользуюсь накопал код на ассемблере.
В чем проблема?
Код
Спойлер
Код: Выделить всё
$regfile = "m2560def.dat" ' specify the used micro
$crystal = 16000000 ' used crystal frequency
$baud = 19200 ' use baud rate
$hwstack = 32 '
$swstack = 32 '
$framesize = 40
'Назначение порта и пинов для регистра
Shiftport Alias Porth 'Назначаем порт для вывода в регистр
Const Dataclk = 2 'Номер пина для тактирования регистра
Const Dataout = 3 'Номер пина для данных регистра
Const Dataset = 4 'Номер пина для защелки регистра
Config Shiftport = Output
'-----------------------------------------------
'Объявляем функцию для вывода в регистр
Declare Sub Test(byval N As Word)
'-----------------------------------------------
'Объявляем переменную 2-байтовую для вывода в регистр
Dim S As Word
'-----------------------------------------------
'Основное тело программы
S = &B1000000100000001
Nop
Call Test(s)
'Shiftout Shiftport.dataout , Shiftport.dataclk , S , 3
'Set Shiftport.dataset
'Reset Shiftport.dataset
Nop '
End
'-----------------------------------------------
'Функция вывода в регистр
Sub Test()
$asm
push r16
Push r18
lds r16, {s} ' Загрузка младшего байта переменной S
rCall Shiftout
Lds r16, {s+1} 'Загрузка старшего байта переменной S
rCall Shiftout
sbi Shiftport,Dataset 'Защелка
cbi Shiftport,Dataset 'Защелка
pop r18
pop r16
$end Asm
End Sub
$asm
Shiftout:
'Sbi Ddrb , 3
ldi r18,&h08
So2:
Ror r16
brcc So1
sbi Shiftport,Dataout
rjmp So3
So1:
Cbi Shiftport , Dataout
So3:
Sbi Shiftport , Dataclk
dec r18
cbi Shiftport,Dataclk
brne So2
cbi Shiftport,Dataout
ret
$end Asm
'------------------------------
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт сен 26, 2014 23:46:13
domrustika
ребята помогите!! очень нужна помощь. собрал розетку таймер! КОД не работает как надо, хотя в протеусе все ок!
посмотрите пожалуйста кто может мой код, и скажите что я не так сделал? вместо нормальных фраз выходит крякозябра!
так же есть видео косяка!
заранее благодарю!!
видео тут
http://youtu.be/zNsS4Of3Orc
Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб сен 27, 2014 18:32:17
edm2007
Вы настройки стека осознанно изменили, или тоже по частям собирали?
Код: Выделить всё
$hwstack = 40
$swstack = 16
$framesize = 32
Попробуйте их убрать, пусть используются по умолчанию.