BASCOM AVR в вопросах и ответах
Re: BASCOM AVR в вопросах и ответах
ЗЫ. Переписал инициализацию 8bit из даиташита. Тоже глухо. Решил рискнуть и подключить вывод 20 (NC/V0) к переменному резистору для регулировки контраста. Индикатор подал признаки жизни, но изображение нечеткое и грязное. Засвечены лишние точки. Так что похоже причина в контрастности дисплея. А инициализируется он верно, что с даташита взятый порядок инициализации, что с баскома стандартный код.
Интересно как контрастность то правильно регулировать? Программно или аппаратно? А то непонятно почему мусор на индикаторе высыпается
Интересно как контрастность то правильно регулировать? Программно или аппаратно? А то непонятно почему мусор на индикаторе высыпается
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Re: BASCOM AVR в вопросах и ответах
Утро вечера мудренее....
Победил индикатор. Инициализацию взял из даташита на ST7032 для режима 8-bit.

В общем получилась смесь из стандартных команд баскома и даташитовской инициализации. Первый раз использовал команду Lcdcmd.
Все таки я очень плохо знаю баском и пользуюсь дай бог 5-й частью команд.
Пример кода. Может кому пригодится
То есть вся разница и заключается в такой вот инициализации дисплея вместо стандартной баскомовской команды Initlcd
Победил индикатор. Инициализацию взял из даташита на ST7032 для режима 8-bit.
В общем получилась смесь из стандартных команд баскома и даташитовской инициализации. Первый раз использовал команду Lcdcmd.
Все таки я очень плохо знаю баском и пользуюсь дай бог 5-й частью команд.
Пример кода. Может кому пригодится
Спойлер
Код: Выделить всё
' Работа с ЖК индикатором WO1602F-TMI-AT к контроллером ST7032
' 8-bit mode
' Инициализация индикатора выполнена на основании даташита на контроллер
' Автор serg_svd
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
' НАСТРОЙКА ПОРТОВ МИКРОКОНТРОЛЛЕРА
'0 - вход, 1 - выход
Ddrb = &B11111111
Ddrc = &B00000011
Ddrd = 0
' КОНФИГУРАЦИЯ ИНДИКАТОРА
Config Lcdpin = Pin , Port = Portb , E = Portc.0 , Rs = Portc.1
Config Lcd = 16 * 2
' ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ
Waitms 50 ' Ожидание после включения питания
' Function set normal mode
Lcdcmd &B00111000 ' DL=1 (8bit), N=1 (2 line), DH=0 (5x8dot), IS=0 Normal mode
Waitus 30
' Function set Extension mode
Lcdcmd &B00111001 ' IS=1 Extension mode
Waitus 30
' Internal OSC frequency
Lcdcmd &B00010100 ' BS=1/5, F2,F1,F0=192 Hz
Waitus 30
' Contrast Set
Lcdcmd &B01110000 ' C3,C2,C1,C0 =0000
Waitus 30
' Power/ICON/Contrast control
Lcdcmd &B01010010 ' Ion=0(display OFF), Bon=0, C5,C4=10
Waitus 30
' Follower control
Lcdcmd &B01101010 ' Fon=1, Rab2,Rab1,Rab0=010
Waitms 200
' Display ON/OFF control
Lcdcmd &B00001100 ' D=1(display ON), C=0(cursor OFF), B=0(blink OFF)
Waitus 30
' КОНЕЦ ИНИЦИАЛИЗАЦИИ ИНДИКАТОРА
Cls
Do
Locate 1 , 3
Lcd "Hello, world!"
Locate 2 , 1
Lcd "0123456789ABCDEF"
Wait 1
Cls
Wait 1
Loop
End
То есть вся разница и заключается в такой вот инициализации дисплея вместо стандартной баскомовской команды Initlcd
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Re: BASCOM AVR в вопросах и ответах
Продолжаю играться с индикатором. Очень интересный экземплярчик. Чуть изменить инициализацию и он превращается в одно строчный с размером символов 5х16 точек.

"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Re: BASCOM AVR в вопросах и ответах
Доброго времени суток, уважаемые форумчане, прошу помощи.. Есть прибор, для него нужно сделать дублирующее табло. Нашёл на форуме код на bascom динамической индикации со сдвиговым регистром. Но не могу разобраться с протоколом передачи. Дайте пожалуйста совет. С контроллерами только начал разбираться.
- Вложения
-
- протокол.txt
- (630 байт) 150 скачиваний
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Доброго.
Если только начали, то для ознакомления можете поглядеть ЗДЕСЬ. И про сдвиговые регистры в том числе...
Если только начали, то для ознакомления можете поглядеть ЗДЕСЬ. И про сдвиговые регистры в том числе...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Cat@lex писал(а):динамической индикации со сдвиговым регистром. Но не могу разобраться с протоколом передачи.
Вот тут на эту тему очень хорошо разжевано. Именно на Баскоме, и именно со сдвиговыми регистрами 74HC595. С поясняющими картинками, с примером программы.
С уважением,
Алексей.
Алексей.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Ну да, подробно. Только у автора явно прослеживается "таймеробоязнь". То что можно (и нужно) в три строки затолкать в прерывание, разворачивается в простыню в основном цикле. 

"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а): у автора явно прослеживается "таймеробоязнь".
На мой взгляд так понятнее, особенно для новичка. А при использовании материала автора код можно (и нужно) оптимизировать в соответствии с собственным опытом.
С уважением,
Алексей.
Алексей.
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Эх, это-то и опасно, что для новичка. Пока он до оптимизации дорастет, все это уже крепко впечатается в мозг... Ну да это всего лишь мое личное мнение. 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Re: BASCOM AVR в вопросах и ответах
Пробовал так.
'avrproject.ru
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
$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 Com1 = Dummy , Synchrone = 0 , Parity = disabled , Stopbits = 1 , Databits = 8 , Clockpol = 0
'объявляем подпрограммы
Declare Sub Getline(s As String) 'чтение данных из буфера
Declare Sub Del_buffer() 'очистка буфера
Dim A As Long
'значение этой переменной должны будем вывести на индикатор
'переменные для преобразования исходного числа
Dim N1 As Byte
Dim N2 As Byte
Dim N3 As Byte
Dim N4 As Byte
Dim N5 As Byte
Dim N6 As Byte
Dim N7 As Byte
Dim N8 As Byte
Dim M1 As Long
Dim M2 As Long
Dim M3 As Long
Dim M4 As Long
Dim M5 As Long
Dim M6 As Long
Dim M7 As Long
Dim M8 As Long
'для значений отправляемых в регистр
Dim R As Byte
Do
Input "A" , A 'значение переменной для вывода на индикатор
'раскладываем число на составляющие
M1 = A
M2 = M1
M3 = M1
M4 = M1
M5 = M1
M6 = M1
M7 = M1
M8 = M1
M1 = M1 / 10000000
N1 = Abs(m1)
M2 = M2 Mod 10000000
M2 = M2 / 1000000
N2 = Abs(m2)
M3 = M3 Mod 1000000
M3 = M3 / 100000
N3 = Abs(m3)
M4 = M4 Mod 100000
M4 = M4 / 10000
N4 = Abs(m4)
M5 = M5 Mod 10000
M5 = M5 / 1000
N5 = Abs(m5)
M6 = M6 Mod 1000
M6 = M6 / 100
N6 = Abs(m6)
M7 = M7 Mod 100
M7 = M7 / 10
N7 = Abs(m7)
M8 = M8 Mod 10
N8 = Abs(m8)
'начинаем задвигать данные в регистр
R = &B10000000
Gosub Anod
R = Lookup(n1 , Numbers) 'начинаем с левого разряда
Gosub Registr 'подпрограмма отправки данных в регистр
R = &B01000000
Gosub Anod
R = Lookup(n2 , Numbers)
Gosub Registr
R = &B00100000
Gosub Anod
R = Lookup(n3 , Numbers)
Gosub Registr
R = &B00010000
Gosub Anod
R = Lookup(n4 , Numbers)
Gosub Registr
R = &B00001000
Gosub Anod
R = Lookup(n5 , Numbers)
Gosub Registr
R = &B00000100
Gosub Anod
R = Lookup(n6 , Numbers)
Gosub Registr
R = &B00000010
Gosub Anod
R = Lookup(n7 , Numbers)
Gosub Registr
R = &B00000001
Gosub Anod
R = Lookup(n8 , Numbers)
Gosub Registr
Loop
End 'конец программы
'массив с кодами для семисегментника
Numbers:
Data &B11000000 '0
Data &B11111001 '1
Data &B10100100 '2
Data &B10110000 '3
Data &B10011001 '4
Data &B10010010 '5
Data &B10000010 '6
Data &B11111000 '7
Data &B10000000 '8
Data &B10010000 '9
'подпрограмма отправки данных в регистр
Registr:
Shiftout Portd.5 , Portd.6 , R , 1 'задвигаем данные
Pulseout Portd , 7 , 10 'защелкиваем регистр
Waitms 5 'задержка переключений разрядов
Return
'подпрограмма работы с регистром переключающим аноды
Anod:
Shiftout Portd.3 , Portd.4 , R , 3
Pulseout Portd , 2 , 10
Return
'avrproject.ru
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
$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 Com1 = Dummy , Synchrone = 0 , Parity = disabled , Stopbits = 1 , Databits = 8 , Clockpol = 0
'объявляем подпрограммы
Declare Sub Getline(s As String) 'чтение данных из буфера
Declare Sub Del_buffer() 'очистка буфера
Dim A As Long
'значение этой переменной должны будем вывести на индикатор
'переменные для преобразования исходного числа
Dim N1 As Byte
Dim N2 As Byte
Dim N3 As Byte
Dim N4 As Byte
Dim N5 As Byte
Dim N6 As Byte
Dim N7 As Byte
Dim N8 As Byte
Dim M1 As Long
Dim M2 As Long
Dim M3 As Long
Dim M4 As Long
Dim M5 As Long
Dim M6 As Long
Dim M7 As Long
Dim M8 As Long
'для значений отправляемых в регистр
Dim R As Byte
Do
Input "A" , A 'значение переменной для вывода на индикатор
'раскладываем число на составляющие
M1 = A
M2 = M1
M3 = M1
M4 = M1
M5 = M1
M6 = M1
M7 = M1
M8 = M1
M1 = M1 / 10000000
N1 = Abs(m1)
M2 = M2 Mod 10000000
M2 = M2 / 1000000
N2 = Abs(m2)
M3 = M3 Mod 1000000
M3 = M3 / 100000
N3 = Abs(m3)
M4 = M4 Mod 100000
M4 = M4 / 10000
N4 = Abs(m4)
M5 = M5 Mod 10000
M5 = M5 / 1000
N5 = Abs(m5)
M6 = M6 Mod 1000
M6 = M6 / 100
N6 = Abs(m6)
M7 = M7 Mod 100
M7 = M7 / 10
N7 = Abs(m7)
M8 = M8 Mod 10
N8 = Abs(m8)
'начинаем задвигать данные в регистр
R = &B10000000
Gosub Anod
R = Lookup(n1 , Numbers) 'начинаем с левого разряда
Gosub Registr 'подпрограмма отправки данных в регистр
R = &B01000000
Gosub Anod
R = Lookup(n2 , Numbers)
Gosub Registr
R = &B00100000
Gosub Anod
R = Lookup(n3 , Numbers)
Gosub Registr
R = &B00010000
Gosub Anod
R = Lookup(n4 , Numbers)
Gosub Registr
R = &B00001000
Gosub Anod
R = Lookup(n5 , Numbers)
Gosub Registr
R = &B00000100
Gosub Anod
R = Lookup(n6 , Numbers)
Gosub Registr
R = &B00000010
Gosub Anod
R = Lookup(n7 , Numbers)
Gosub Registr
R = &B00000001
Gosub Anod
R = Lookup(n8 , Numbers)
Gosub Registr
Loop
End 'конец программы
'массив с кодами для семисегментника
Numbers:
Data &B11000000 '0
Data &B11111001 '1
Data &B10100100 '2
Data &B10110000 '3
Data &B10011001 '4
Data &B10010010 '5
Data &B10000010 '6
Data &B11111000 '7
Data &B10000000 '8
Data &B10010000 '9
'подпрограмма отправки данных в регистр
Registr:
Shiftout Portd.5 , Portd.6 , R , 1 'задвигаем данные
Pulseout Portd , 7 , 10 'защелкиваем регистр
Waitms 5 'задержка переключений разрядов
Return
'подпрограмма работы с регистром переключающим аноды
Anod:
Shiftout Portd.3 , Portd.4 , R , 3
Pulseout Portd , 2 , 10
Return
Re: BASCOM AVR в вопросах и ответах
serg_svd писал(а):
А подсветка - не чересчурная ? Как по мне - таки да. Большой расход тока и малая контрастность. Сколько потребляет подсветка? Гасящий резистор есть ?
Re: BASCOM AVR в вопросах и ответах
Jack_A писал(а): А подсветка - не чересчурная ? Как по мне - таки да. Большой расход тока и малая контрастность. Сколько потребляет подсветка? Гасящий резистор есть ?
Это такой яркий на фотографии вышел. В реальности как и любой "синий" китайский дисплей, если видели. Подсветка кушает меньше 20 мА. Резистор уже впаян, но можно на плате поставить еще Ом 20 и занизить ток. Не так ярко светить будет
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
-
chernishovmihail
- Родился
- Сообщения: 2
- Зарегистрирован: Ср май 18, 2016 17:02:36
Re: BASCOM AVR в вопросах и ответах
столкнулся с проблемой при выходе из режима "Powersave"
написал мигалку с моделькой в протеус чтоб наглядно было и положил на яндекс
https://yadi.sk/d/bs1ct-ovrpFaX
Использую "Config Timer2 = Timer , Async = On , Prescale = 1024"
Проблема такова: после выхода из Powersave что-то происходит с частотой- некорректно работает "Witems", шина I2C,(возможно и 1Wire), но $baud - не меняется. То есть вывод в терминал нормальный, а вот опросить датчики уже не могу. Месяца 2 уж извращаюсь. Возможно у кого-то есть соображения по этому поводу.
$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 40
$swstack = 128
$framesize = 32
$baud = 9600
Print "***"
Dim Var1 As Integer 'просто счетная переменная
Config Portb.0 = Output 'вешаем светодиод на порт
Mypover Alias Portb.0
Config Timer2 = Timer , Async = On , Prescale = 1024 'запускаем Таймер2 в асинхронном режиме
On Timer2 Awake Nosave
Enable Interrupts
Mcucr = &B10110000 'разрешаем режим Powersave
Gosub Awake
Do
Print "Powersave"
Print " "
Enable Timer2
Powersave
Loop
End
Awake:
Disable Timer2
Print "TIMSK=" ; Bin(timsk) ; " ASSR=" ; Bin(assr) ; " TIFR=" ; Bin(tifr) ; " OSCCAL=" ; Bin(osccal)
Mypover = 1 'мигаем светодиодом
Wait 1
Mypover = 0
Wait 1
Mypover = 1
Wait 1
Mypover = 0
Wait 1
Incr Var1
Print "Var1= " ; Var1
Return
написал мигалку с моделькой в протеус чтоб наглядно было и положил на яндекс
https://yadi.sk/d/bs1ct-ovrpFaX
Использую "Config Timer2 = Timer , Async = On , Prescale = 1024"
Проблема такова: после выхода из Powersave что-то происходит с частотой- некорректно работает "Witems", шина I2C,(возможно и 1Wire), но $baud - не меняется. То есть вывод в терминал нормальный, а вот опросить датчики уже не могу. Месяца 2 уж извращаюсь. Возможно у кого-то есть соображения по этому поводу.
$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 40
$swstack = 128
$framesize = 32
$baud = 9600
Print "***"
Dim Var1 As Integer 'просто счетная переменная
Config Portb.0 = Output 'вешаем светодиод на порт
Mypover Alias Portb.0
Config Timer2 = Timer , Async = On , Prescale = 1024 'запускаем Таймер2 в асинхронном режиме
On Timer2 Awake Nosave
Enable Interrupts
Mcucr = &B10110000 'разрешаем режим Powersave
Gosub Awake
Do
Print "Powersave"
Print " "
Enable Timer2
Powersave
Loop
End
Awake:
Disable Timer2
Print "TIMSK=" ; Bin(timsk) ; " ASSR=" ; Bin(assr) ; " TIFR=" ; Bin(tifr) ; " OSCCAL=" ; Bin(osccal)
Mypover = 1 'мигаем светодиодом
Wait 1
Mypover = 0
Wait 1
Mypover = 1
Wait 1
Mypover = 0
Wait 1
Incr Var1
Print "Var1= " ; Var1
Return
- Microtech
- Поставщик валерьянки для Кота
- Сообщения: 2052
- Зарегистрирован: Вт ноя 03, 2009 21:02:38
- Откуда: Москва
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Нечаянно наткнулся на особенность Lookup. 
По привычке, поставил RETURN после блока DATA. Всё сползло на 2 байта.
B = Lookup(1 , Tabl) даёт ерунду (предыдущий байт из памяти).
B = Lookup(2 , Tabl) b=&H44 даёт первый элемент массива tabl
B = Lookup(3 , Tabl) b=&H65 даёт второй элемент массива tabl
.....
....
end
Tabl:
Data &H44 , &H65 , &H6C
Return
По привычке, поставил RETURN после блока DATA. Всё сползло на 2 байта.
B = Lookup(1 , Tabl) даёт ерунду (предыдущий байт из памяти).
B = Lookup(2 , Tabl) b=&H44 даёт первый элемент массива tabl
B = Lookup(3 , Tabl) b=&H65 даёт второй элемент массива tabl
.....
....
end
Tabl:
Data &H44 , &H65 , &H6C
Return
- Tankor
- Встал на лапы
- Сообщения: 139
- Зарегистрирован: Вт май 03, 2011 10:13:12
- Откуда: Россия, Татарстан
Re: BASCOM AVR в вопросах и ответах
Microtech писал(а):Нечаянно наткнулся на особенность Lookup.
По привычке, поставил RETURN после блока DATA. Всё сползло на 2 байта.
B = Lookup(1 , Tabl) даёт ерунду (предыдущий байт из памяти).
B = Lookup(2 , Tabl) b=&H44 даёт первый элемент массива tabl
B = Lookup(3 , Tabl) b=&H65 даёт второй элемент массива tabl
.....
....
end
Tabl:
Data &H44 , &H65 , &H6C
Return
Вообще не ясно, зачем после дата ставить return? Не надо.
Вот из хелпа:
The value can be up to 65535. 0 will return the first entry.
Ясна мысль? Lookup берёт данные с 0. Вот Вам и сдвиг.
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
chernishovmihail писал(а):Проблема такова: после выхода из Powersave что-то происходит с частотой- некорректно работает "Witems", шина I2C,(возможно и 1Wire), но $baud - не меняется.
А где в Вашем коде "Witems", шина I2C,(возможно и 1Wire)?
Все делают ошибки, только мудрецы - новые, а дураки - старые.
- pavel123
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Чт май 17, 2007 09:44:13
- Откуда: Украина, г. Кривой Рог
Re: BASCOM AVR в вопросах и ответах
Доб.день, Коты...
Тираню модуль ардуино на ds3231. Запустился без вопросов. Часики тикают. В процессе тестовых прогонок, заметил что часики убегают на 1 сек. в сутки. Так как часики будут работать в общей системе контроля с привязкой к реальному времени, то этот уход как бы много. Я делал часики на 1307, так уход был всего 2-3 сек. за полгода.
Стал разбираться с регистром коррекции хода, который есть в этой мелкосхеме.
В 7-й бит регистра записывается знак коррекции + или -.
Собственных знаний не хватает. Помогите мне пожалуйста....
Что нужно поставить в этот бит для + и что для -...
Спасибо.
Тираню модуль ардуино на ds3231. Запустился без вопросов. Часики тикают. В процессе тестовых прогонок, заметил что часики убегают на 1 сек. в сутки. Так как часики будут работать в общей системе контроля с привязкой к реальному времени, то этот уход как бы много. Я делал часики на 1307, так уход был всего 2-3 сек. за полгода.
Стал разбираться с регистром коррекции хода, который есть в этой мелкосхеме.
В 7-й бит регистра записывается знак коррекции + или -.
Собственных знаний не хватает. Помогите мне пожалуйста....
Что нужно поставить в этот бит для + и что для -...
Спасибо.
- Мурлокотам
- Встал на лапы
- Сообщения: 139
- Зарегистрирован: Вт ноя 06, 2012 12:37:08
- Откуда: СПб
Re: BASCOM AVR в вопросах и ответах
Насколько я понял, в этот регистр данные пишутся в дополнительном коде:
Значит единица в седьмом бите - это "минус".
The code is encoded in two’s complement, with
bit 7 representing the sign bit.
Значит единица в седьмом бите - это "минус".
Лом - это сложное техническое устройство.
- pavel123
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Чт май 17, 2007 09:44:13
- Откуда: Украина, г. Кривой Рог
Re: BASCOM AVR в вопросах и ответах
Мурлокотам спасибо за ваше внимание к моему вопросу.
Кажись разобрался.
По пдф-ке, коррекция хода происходит путем подключения и отключения дополнительных конденсаторов в самом чипе. За это отвечают младшие 6-ть битов. Коррекция происходит в диапазоне значений ±127. Бит 7 это бит знака.
Обычно, по двоичной логике 1-ца значит "включено", а 0 -"выключено".
Получается, все что меньше значения 128 это (-) коррекция, все что больше 128 это (+) коррекция.
По итогу, на сколько я могу полагаться на свой слух и "пик-пикам" радио
, часы таки замедлились. Я поставил значение этого регистра 131.
128 это 1 (+) в 7-й бит и 3-ка сама коррекция. &B10000011
Но надо еще понаблюдать в более длительной перспективе.
И еще одно дополнение: + замедляет ход часов, - ускоряет....
Кажись разобрался.
По пдф-ке, коррекция хода происходит путем подключения и отключения дополнительных конденсаторов в самом чипе. За это отвечают младшие 6-ть битов. Коррекция происходит в диапазоне значений ±127. Бит 7 это бит знака.
Обычно, по двоичной логике 1-ца значит "включено", а 0 -"выключено".
Получается, все что меньше значения 128 это (-) коррекция, все что больше 128 это (+) коррекция.
По итогу, на сколько я могу полагаться на свой слух и "пик-пикам" радио
128 это 1 (+) в 7-й бит и 3-ка сама коррекция. &B10000011
Но надо еще понаблюдать в более длительной перспективе.
И еще одно дополнение: + замедляет ход часов, - ускоряет....
- pavel123
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Чт май 17, 2007 09:44:13
- Откуда: Украина, г. Кривой Рог
Re: BASCOM AVR в вопросах и ответах
Часики таки удалось замедлить и добиться более менее приемлемой точности хода. Время покажет... 
В итоге, диапазон корректировки оказался не ±127, как я прочитал в одном из пдф к эти часам, а всего ±7.
Значение имеет количество 1 (включено) в байте коррекции. А в каком бите они будут стоять похоже без разницы. Естественно кроме 7-го бита в который записан знак коррекции.
В итоге, диапазон корректировки оказался не ±127, как я прочитал в одном из пдф к эти часам, а всего ±7.
Значение имеет количество 1 (включено) в байте коррекции. А в каком бите они будут стоять похоже без разницы. Естественно кроме 7-го бита в который записан знак коррекции.
