BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
fabrique
Родился
Сообщения: 3
Зарегистрирован: Пн дек 07, 2009 01:08:27

Сообщение fabrique »

Практически :) Толко вместо яиц там будет жить твердотельный гироскоп :)
fabrique
Родился
Сообщения: 3
Зарегистрирован: Пн дек 07, 2009 01:08:27

Сообщение fabrique »

Еще вопрос.

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

Вот код у передатчика
$regfile = "2313def.dat"
$crystal = 4000000
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 'default use 10 for the SW stack
$framesize = 40 'default use 40 for the frame space
Config 1wire = Portd.0
Dim Rpm As Word
For Rpm = 0 to 250
1wwrite Rpm
Waitms 500
Next
Loop
End


а вот - у приемника
$regfile = "M8def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40
Config 1wire = Portd.0
Dim Rpm As Word
Config 1wire = Portd.0
Do
1wreset
Rpm() = 1wread()
Lcd "RPM:" ; Rpm ;
Loop
End


В результате передается ерунда - 255 [/code]
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

fabrique писал(а):В результате передается ерунда - 255

Абсолютно закономерно она передаётся :))
Так как все баскомовские функции работы с 1-wire предназначены для эмуляции мастер-устройства, а для связи двух девайсов один из них должен быть слейвом.
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
kkozyrev
Открыл глаза
Сообщения: 67
Зарегистрирован: Пт дек 11, 2009 02:40:44
Откуда: C-Петербург
Контактная информация:

Сообщение kkozyrev »

а чем вы прошиваете .... я собрал стк200 дак сволочь не шьёт... устал биться с ним
не судите, я учусь -)
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

Прошиваю СТК200 на КР1533АП5, всё отлично :wink:.
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
kkozyrev
Открыл глаза
Сообщения: 67
Зарегистрирован: Пт дек 11, 2009 02:40:44
Откуда: C-Петербург
Контактная информация:

Сообщение kkozyrev »

сегодня стк2000 заработал.... вот загадка....
шьет...

вопросик, где можно посмотреть какие fuse биты, что значат в bascom'e ?
не судите, я учусь -)
Аватара пользователя
kkozyrev
Открыл глаза
Сообщения: 67
Зарегистрирован: Пт дек 11, 2009 02:40:44
Откуда: C-Петербург
Контактная информация:

Сообщение kkozyrev »

подскажите новичку...

на что лучше вешать кнопки? т.е. на что их замыкать при опросе микроконтролером на "+" или на массу?

ну и соответственно для управления чем либо на вывод контроллеру что лучше слать??? "+" ???
не судите, я учусь -)
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Если кнопок не более двух, то их лучше "вешать" на внешние прерывания INT0 и INT1. А там можно настроить как хочешь ( подробнее смотри хелп к Баскому), хоть на срабатывание при замыкании на землю, хоть по нарастающему фронту, хоть по ниспадающему, хоть при любой смене сигнала. Если больше кнопок, то лучше их замыкать на землю, но тогда вывод порта, куда подключена кнопка должен быть с подтяжкой на +5 вольт, чтобы МК не ошибся, что у него конкретно на выводе порта - единица или ноль. Рулить кнопками лучше при помощи директивы Debounce - там сразу задается задержка от дребезга контактов (Config Debounce = 30 - задержка 30мс).
ну и соответственно для управления чем либо на вывод контроллеру что лучше слать??? "+" ???

А это уже смотря чем управлять.... :tea:
Цапу крутить надо!!! Ку или не ку?
I_ivi
Родился
Сообщения: 9
Зарегистрирован: Пн май 15, 2006 14:24:40

Сообщение I_ivi »

Igor_67
а можно какой нибудь пример кода?
Аватара пользователя
kkozyrev
Открыл глаза
Сообщения: 67
Зарегистрирован: Пт дек 11, 2009 02:40:44
Откуда: C-Петербург
Контактная информация:

Сообщение kkozyrev »

купил сегодня FDCC1602G-FSWFTW-50LR вот такой дисплейчик

вроде и питание у него 5в и 4х битное управление есть....
подключил его к mega8 прошил её, а экран чистенький.... в чём загвоздка?

попробовал в proteus прогнать всё, программа рабочая.... где косяк мой???
не судите, я учусь -)
Аватара пользователя
константин_KoSS_89
Вымогатель припоя
Сообщения: 602
Зарегистрирован: Пн дек 29, 2008 01:40:28
Откуда: (Украина, г. Стаханов, Луганская обл.) теперь Кемерово :)

Сообщение константин_KoSS_89 »

Есть-ли у кого исходники для часов с микросхемой DS1307, или подскажите как связать её с ATtiny2313 нужно выводить часы и минуты на семисигментный LED индикатор, читал на DS1307 даташит(про вывод времени), ничего непонял. Если есть хот приметивный текст программы, прошу скинуть в личку, очень нужно :lol:
Зрание спасибо!
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

kkozyrev писал(а):программа рабочая.... где косяк мой???

Контраст по даташиту подключён?
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

I_ivi писал(а):Igor_67
а можно какой нибудь пример кода?

Можно и пример. Первый - для управления кнопками по внешним прерываниям:

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

On Int0 Minus     'при возникновении прерывания INT0, переход на метку Minus
Enable Int0
On Int1 Plus   'при возникновении прерывания INT1, переход на метку Plus
Enable Int1
Enable Interrupts

Потом, где-то в конце программы, по меткам Minus и Plus ставим обработчики прерываний, т.е. подпрограмы, обслуживающие нажатие кнопок (+ и -).
Второй - для отслеживания нажатия кнопок, с учетом дребезга:

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

Config Debounce = 30
...
...
...
...
Debounce PIND.5 , 0 , Regim
...
...
...
...
End

Вначале конфигурируем задержку на 30 мс. Потом где то в программе вызываем опрос кнопки PIND.5, например. Дальше - "0" - это как Debounce будет реагировать на нажатие ( в данном случае, сработает, если на PIND.5 появится "0". можно и "1" поставить. тогда будет срабатывать при замыкании на +). Затем идет метка Regim, на которую надо перейти по наступлению события (в данном случае - по замыкании PIND.5 на "землю".
Вот, где-то примерно так. Более подробно в хэлпе к Баскому.
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Есть-ли у кого исходники для часов с микросхемой DS1307, или подскажите как связать её с ATtiny2313

Насчет DS1307 - в баскоме есть стандартная библиотека: $lib "ds1307clock.lib"
А дальше просто управление по I2C.

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

Config Clock = user
Const Ds1307w = &HD0
Const Ds1307r = &HD1
Dim Weekday As Byte
Time$ = "12:00:00"
Date$ = "12-05-09"
Do
Cls
Lcd ; Time$ ; "  " ; Date$
Waitms 500
Loop

Getdatetime:
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 0
  I2cstart
  I2cwbyte Ds1307r
  I2crbyte _sec , Ack
  I2crbyte _min , Ack
  I2crbyte _hour , Ack
  I2crbyte Weekday , Ack
  I2crbyte _day , Ack
  I2crbyte _month , Ack
  I2crbyte _year , Nack
  I2cstop
  _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
  _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return

Setdate:
 _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 4
  I2cwbyte _day
  I2cwbyte _month
  I2cwbyte _year
  I2cstop
Return
Settime:
 _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
  I2cstart
  I2cwbyte Ds1307w
  I2cwbyte 0
  I2cwbyte _sec
  I2cwbyte _min
  I2cwbyte _hour
  I2cstop
Return

Только здесь вывод на LCD, но принцип, думаю ясен... :)
Строка с временем хранится в Time$, строка с датой - в Date$
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

Igor_67
А подпрограммы эти зачем приводить? Из бейсика достаточно просто работать с переменными DATE$ и TIME$.
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
kkozyrev
Открыл глаза
Сообщения: 67
Зарегистрирован: Пт дек 11, 2009 02:40:44
Откуда: C-Петербург
Контактная информация:

Сообщение kkozyrev »

Секретный кот писал(а):
kkozyrev писал(а):программа рабочая.... где косяк мой???

Контраст по даташиту подключён?


парадокс в том, что подключив дисплей к mega32 он прекрасно заработал... получается, что библиотека bascom $lib "lcd4.lbx"
с mega8 не работает???7
не судите, я учусь -)
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

kkozyrev писал(а):получается, что библиотека bascom $lib "lcd4.lbx"
с mega8 не работает???7

Если в протеусе всё ОК, то не получается :))
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
kkozyrev
Открыл глаза
Сообщения: 67
Зарегистрирован: Пт дек 11, 2009 02:40:44
Откуда: C-Петербург
Контактная информация:

Сообщение kkozyrev »

мда
все-равно робота на mega32 делаю.... главное что с ней работает :lol:

а вот еще вопросик

сработало прерывание int0 программа ушла на участок обработки данного прерывания, но в процессе обработки прерывания int0 срабатывает прерывание int1... что произойдет? дообработка int0 или сразу переход на обработку int1??? :shock:
не судите, я учусь -)
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Сначала закончится обработка одного прерывания, потом начнется другого.
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
kkozyrev
Открыл глаза
Сообщения: 67
Зарегистрирован: Пт дек 11, 2009 02:40:44
Откуда: C-Петербург
Контактная информация:

Сообщение kkozyrev »

может и обсуждалось уже....
где почитать доступно про шим в basccom
не судите, я учусь -)
Ответить

Вернуться в «AVR»