я като и необратил внимание. Осталось после эксперементов. Правильно конечно отрубить есле ненжен выход inv OCB1 и Pwm1aedm2007 писал(а):Да, теперь все понятно.А Вы специально включили инверсный вывод OC1B в GTCCR? И PWM1A тоже.
BASCOM AVR в вопросах и ответах
Re: BASCOM AVR в вопросах и ответах
Только абсолютная пустота бездны принесёт мне покой.
- Реклама
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Ну да, потому я и пишу всегда в двоичном виде, чтобы нагляднее было. 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- aleksey_gregul
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср дек 29, 2010 17:30:34
Re: BASCOM AVR в вопросах и ответах
http://pol-sem.narod.ru/muson/muson.htmvpashko писал(а):Как сюда дописать две кнопки чтоб при нажатии на одну играла музыка а второй выбирать музыку.
- vpashko
- Нашел транзистор. Понюхал.
- Сообщения: 153
- Зарегистрирован: Пт июн 20, 2008 18:27:08
- Откуда: Украина,Запорожье
Re: BASCOM AVR в вопросах и ответах
aleksey_gregul, спасибо что ответили, я видел этот звоночек, но там исходник не на Bascom AVR написан.
-
us5caa
- Первый раз сказал Мяу!
- Сообщения: 38
- Зарегистрирован: Пт апр 04, 2008 08:48:57
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Подскажите, как привести к виду 00.000.000 показания частотомера
сейчас показывает "00.000000"
тренируюсь с граф 128х64
кусочек исходника:
сейчас показывает "00.000000"
тренируюсь с граф 128х64
кусочек исходника:
Код: Выделить всё
Dim Frequency As Single
Dim Flag As Bit
Dim Overflow As Byte
Dim Cnt As Long
Dim Disp As String * 8
'---------------
Main:
Do
If Flag = 1 Then
Frequency = Overflow * 65536 '65536
Frequency = Frequency + Counter1
Setfont Font8x8
Lcdat 1 , 10 , "Frequency metr" , 0
Frequency = Frequency / 100000
Disp = Str(frequency)
Setfont My12_16
Disp = Fusing(frequency , "0.00000")
Lcdat 4 , 1 , Disp , 0
'--------------------
- Реклама
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Форматировал вывод так:
Число из бинарника в строчку ASCII функцией STR, тут все ясно. Далее цикл или функция FORMAT, в котором дополняются нули перед числом и десятичные точки. Можно и функцией MID вставить точки или другие знаки, в нужных местах, затем на индикацию. Сложнее, когда индикатор сегментный, там точки надо не в текстовой строке держать, а учитывать при управлении сегментами. Строковые функции сильно жрут память, я использовал только STR 1 раз, чтобы бинарный в ASCII сделать, а затем, получив адрес этой строки в ОЗУ функцией VARPTR, все остальное на ASM вставке, но много не сэкономил.
Число из бинарника в строчку ASCII функцией STR, тут все ясно. Далее цикл или функция FORMAT, в котором дополняются нули перед числом и десятичные точки. Можно и функцией MID вставить точки или другие знаки, в нужных местах, затем на индикацию. Сложнее, когда индикатор сегментный, там точки надо не в текстовой строке держать, а учитывать при управлении сегментами. Строковые функции сильно жрут память, я использовал только STR 1 раз, чтобы бинарный в ASCII сделать, а затем, получив адрес этой строки в ОЗУ функцией VARPTR, все остальное на ASM вставке, но много не сэкономил.
Re: BASCOM AVR в вопросах и ответах
ATmega8 имеет два 8 разрядных таймера / счетчика и один 16-разрядный таймер счетчик с различными способностями.
Особенности 8-разрядный Timer/Counter0 являются:
Одноканальный счетчик;
Частота генератора;
Внешний счетчик событий;
10 - делитель частоты немного часов.

TCNT0 является 8-битный таймер регистра счетчика. Таймер счетчик может быть синхронизирована внешним часов через контактный T0 или от внутренних через предварительно scaller. Таймер счетчик увеличивая (MAX значение 0xFF), а затем возобновляется с внизу = 0x00. После переполнении таймера, флага TOV0 записывается в 1, и если TOIE0 бит в SREG установлен, то переполнения таймера прерывания выполняется. TOV0 действует как девятый бит из регистра счетчика, который только установлен, но не очищается. При этом бис сочетается с переполнения таймера прерывания - то она автоматически снимается. Если вам нужно, чтобы начать не образуют вниз, то вы можете написать любое значение TCNT0 зарегистрироваться в любое время.
Особенности 8-разрядный Timer/Counter0 являются:
Одноканальный счетчик;
Частота генератора;
Внешний счетчик событий;
10 - делитель частоты немного часов.
TCNT0 является 8-битный таймер регистра счетчика. Таймер счетчик может быть синхронизирована внешним часов через контактный T0 или от внутренних через предварительно scaller. Таймер счетчик увеличивая (MAX значение 0xFF), а затем возобновляется с внизу = 0x00. После переполнении таймера, флага TOV0 записывается в 1, и если TOIE0 бит в SREG установлен, то переполнения таймера прерывания выполняется. TOV0 действует как девятый бит из регистра счетчика, который только установлен, но не очищается. При этом бис сочетается с переполнения таймера прерывания - то она автоматически снимается. Если вам нужно, чтобы начать не образуют вниз, то вы можете написать любое значение TCNT0 зарегистрироваться в любое время.
-
us5caa
- Первый раз сказал Мяу!
- Сообщения: 38
- Зарегистрирован: Пт апр 04, 2008 08:48:57
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
можно написать кусочек, почему то такой вариант типа:Microtech писал(а):Форматировал вывод так:
.... Можно и функцией MID вставить точки или другие знаки, в нужных местах, затем на индикацию. ....
Код: Выделить всё
Dim A$ as string * 8
Dim B$ as string * 13
.
.
A$=str(Frequency) , 8)
B$=left (a$ , 2) +"."
B$=B$+Mid (a$ , 3 , 3) +"."
B$=B$ + right(a , 3) + "Hz"
Setfont My12_16
Lcdat 4, 10, B$ ,0
Что делаю не правильно?
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
кол-во открытых скобок не совпадает с кол-вом закрытых 
-
us5caa
- Первый раз сказал Мяу!
- Сообщения: 38
- Зарегистрирован: Пт апр 04, 2008 08:48:57
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
с скобками ошибся когда вставлял сюда код, в исходнике всё правильно... A$=str((Frequency) ,aleksandr-zh писал(а):кол-во открытых скобок не совпадает с кол-вом закрытых
- Alex_Megavolt_79
- Грызет канифоль
- Сообщения: 262
- Зарегистрирован: Пт окт 30, 2009 22:33:56
- Откуда: Санкт-Петербург
Re: BASCOM AVR в вопросах и ответах
Уважаемые коты, а кто нибудь разбирался с датчиками давления MPX4115AP и влажности HIH-4000 группы 002 или 004. Я не совсем пойму как пересчитывать показания АЦП. И есть ли у кого пример на ВАСИКЕ?
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
us5caa
A$=str(Frequency),8) А что значат скобки запятая и цифра 8?
может подойдет A$=str(Frequency)+"8" но не понятно, зачем там 8, или восьмерка к длине строки отношение должна иметь? Переменная A$ и так объявлена как 8 байт длиной, никаких цифр в STR подставлять не надо.
A$=str(Frequency),8) А что значат скобки запятая и цифра 8?
может подойдет A$=str(Frequency)+"8" но не понятно, зачем там 8, или восьмерка к длине строки отношение должна иметь? Переменная A$ и так объявлена как 8 байт длиной, никаких цифр в STR подставлять не надо.
- Секретный кот
- Поставщик валерьянки для Кота
- Сообщения: 2106
- Зарегистрирован: Ср сен 17, 2008 14:32:15
- Откуда: Старые Васюки
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Может всё-таки надо так:us5caa писал(а):с скобками ошибся когда вставлял сюда код, в исходнике всё правильно... A$=str((Frequency) , 8 )
A$ = str(Frequency)
A$ = Mid(A$, 1, 8 )
?
Даже остановленные часы два раза в сутки показывают правильное время.
Re: BASCOM AVR в вопросах и ответах
Это недокументированная команда,Microtech писал(а):A$=str(Frequency),8) А что значат скобки запятая и цифра 8?
-
us5caa
- Первый раз сказал Мяу!
- Сообщения: 38
- Зарегистрирован: Пт апр 04, 2008 08:48:57
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Ну это я гдето подсмотрел, в каких то исходникахМурик писал(а):Это недокументированная команда,Microtech писал(а):A$=str(Frequency),8) А что значат скобки запятая и цифра 8?о которой даже Марк Альбертс не знает!
получилось всё таки разбить цифры точками....
Код: Выделить всё
Dim Frequency As Single
Dim Flag As Bit
Dim Overflow As Byte
Dim Cnt As Long
Dim Disp As String * 8
Dim Text$ As String * 10
Dim Prom_ch As Single
..............
.............
Main:
Do
If Flag = 1 Then
Frequency = Overflow * 65536 '65536
Frequency = Frequency + Counter1
Frequency = Frequency / 1000000
Frequency = Frequency * 5
'Frequency = Frequency + Prom_ch
Disp = Str(frequency)
Setfont Font8x8
'Setfont My12_16
Disp = Fusing(frequency , "#.######")
Text$ = Left(disp , 2) + Mid(disp , 3 , 3) + "."
Text$ = Text$ + Right(disp , 3)
'Print Text$
Lcdat 4 , 1 , Text$ , 0
Setfont Font8x8
Lcdat 8 , 1 , "Presc=10" , 0
Line(0 , 12) -(127 , 12) , 255
Line(0 , 50) -(127 , 50) , 255
Line(64 , 50) -(64 , 63) , 255
Line(0 , 13) -(127 , 13) , 255
Line(0 , 51) -(127 , 51) , 255
Reset Flag
Counter1 = 0
Overflow = 0
Cnt = 6950 ' 34750 çíà÷åíèå ïîäîáðàíî äëÿ çàõâàòà çà 1 ñåêóíäó
Tcnt1 = 0
Tcnt0 = 90
Start Timer0
Start Counter1
End If
LoopFrequency = Frequency / 1000000 делить не на 1000000 а на 100000 то на дисплее опять бред... типа 86. 86.86.86. и так далее за пределы дисплея
- Moto_v3x
- Потрогал лапой паяльник
- Сообщения: 307
- Зарегистрирован: Ср мар 31, 2010 11:45:58
- Откуда: Славянск
Re: BASCOM AVR в вопросах и ответах
us5caa
Это новая прошивка для Бриз-5 или синтезатора или что то новое готовится?
Это новая прошивка для Бриз-5 или синтезатора или что то новое готовится?
-
us5caa
- Первый раз сказал Мяу!
- Сообщения: 38
- Зарегистрирован: Пт апр 04, 2008 08:48:57
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Moto_v3x писал(а):us5caa
Это новая прошивка для Бриз-5 или синтезатора или что то новое готовится?
Почему Frequency = Frequency / 1000000 выводиться нормально а Frequency = Frequency / 100000 не нормально?
Re: BASCOM AVR в вопросах и ответах
Как бы текущая версия 2.0.4.0.us5caa писал(а):1.11.9.0
Может и была какая-то ошибка компилятора (его люди пишут, а людям свойственно ошибаться) и возможно что ее исправили в текущих версиях.
- Moto_v3x
- Потрогал лапой паяльник
- Сообщения: 307
- Зарегистрирован: Ср мар 31, 2010 11:45:58
- Откуда: Славянск
Re: BASCOM AVR в вопросах и ответах
us5caa
может это из за разной длинны строки после деления, хотя если на входе делитель на 10 то надо умножать на 10 или увеличивать время счета. Хоть бы показали конфигурацию дисплея, таймера, прерываний.
Похоже что этот исходник взяли за основу.
может это из за разной длинны строки после деления, хотя если на входе делитель на 10 то надо умножать на 10 или увеличивать время счета. Хоть бы показали конфигурацию дисплея, таймера, прерываний.
Похоже что этот исходник взяли за основу.
-
us5caa
- Первый раз сказал Мяу!
- Сообщения: 38
- Зарегистрирован: Пт апр 04, 2008 08:48:57
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Да исходник за основу взял именно этот, но там время счёта 1сек, уменьшил константы в 5 раз, и умножаю показания на 5.Moto_v3x писал(а):us5caa
может это из за разной длинны строки после деления, хотя если на входе делитель на 10 то надо умножать на 10 или увеличивать время счета. Хоть бы показали конфигурацию дисплея, таймера, прерываний.
Похоже что этот исходник взяли за основу.
изменил только дисплей.


