Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт фев 14, 2012 22:20:56
А у меня чегой-та не желает. Кнопки виснут и все. На другом домашнем кантупере попробую, просто с нубука сейчас. Хотя небыло еще подобных проблем...
Здесь можно немножко помяукать :)
https://radiokot.ru/forum/
Оба варианта вылетают с ошибкой ? У меня вариант с DIP ругался как раз на ошибку про счетчик команд с памятью, но не вылетал, а вариант с TQFP иногда ругался про Timestep чего-то там. Я добавил waitms в самый первый цикл:edm2007 писал(а):А у меня чегой-та не желает. Кнопки виснут и все. На другом домашнем кантупере попробую, просто с нубука сейчас. Хотя небыло еще подобных проблем...
Код: Выделить всё
For Z = 1 To 65500
If Pind.5 = 0 Then Goto Tiktak
Waitms 100
Next ZПример работы уже вылаживали http://radiokot.ru/forum/viewtopic.php? ... start=1960vanyap1 писал(а): дайте пожалуйста наводку (не на ВОДКУ) на источник информации по этому.
http://forum.avr.ru/bascom-avr-kak-beat ... 796p3.html Здесь посмотрите на базе блока питания исходник от RAF65TRIOD писал(а): Вобщем нужно организовать ввод с клавиатуры числа с плавающей точкой как на калькуляторе, но без матиматический функций и с возможность ограничения количества знаков после запетой.
Клавиатура стандартная 12 кнопочная.
Код: Выделить всё
Pcf2129:
I2cstart
I2cwbyte Pcf21w
I2cwbyte &H03 'С этого места начать
I2cstart
I2cwbyte Pcf21r 'Готов к приему
I2crbyte Seco , Ack
I2crbyte Mine , Ack
I2crbyte Hour , Ack
I2crbyte Day , Ack
I2crbyte Dat , Ack
I2crbyte Month , Ack
I2crbyte Year , Nack
I2cstop
Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour) : Day = Makedec(day)
Dat = Makedec(dat) : Month = Makedec(month) : Year = Makedec(year)
ReturnКод: Выделить всё
Set_h:
Cls
Do
If B1 = 1 Then
Hour = Makebcd(hour)
I2cstart
I2cwbyte Pcf21w
I2cwbyte 5
I2cwbyte Hour
I2cstop
Waitms 150
Goto Set_m
End If
If Plus = 1 Then
Waitms 150
Hour = Hour + 1
End If
If Hour = 24 Then
Hour = 0
End If
If Hour = 255 Then
Hour = 23
End If
If Minus = 1 Then
Waitms 150
Hour = Hour - 1
End If
Locate 1 , 1
Lcd "setting hours"
Locate 2 , 1
Lcd ">" ; Hour ; "/" ; Mine ; " "
LoopКод: Выделить всё
I2cstart
I2cwbyte Pcf21w
I2cwbyte 0
I2cwbyte &B00100100
I2cstopКод: Выделить всё
Pcf21read:
I2cstart
I2cwbyte Pcf21w
I2cwbyte &H02
I2cstart
I2cwbyte Pcf21r
I2crbyte Seco , Ack
I2crbyte Mine , Ack
I2crbyte Hour , Ack
I2crbyte Dat , Ack
I2crbyte Day , Ack
I2crbyte Month , Ack
I2crbyte Year , Nack
I2cstop
Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour) : Day = Makedec(day)
Dat = Makedec(dat) : Month = Makedec(month) : Year = Makedec(year)
Return
'Запись времени
pcf21write:
Seco = 0
Seco = Makebcd(seco) : Mine = Makebcd(mine) : Hour = Makebcd(hour) : Day = Makebcd(day)
Dat = Makebcd(dat) : Month = Makebcd(month) : Year = Makebcd(year)
I2cstart
I2cwbyte Pcf21w
I2cwbyte &H03
I2cwbyte Seco
I2cwbyte Mine
I2cwbyte Hour
I2cwbyte Dat
I2cwbyte Day
I2cwbyte Month
I2cwbyte Year
I2cstop
Waitms 150
Goto 1
на днях распаивал диал-ап модемы. там есть или такие, или побольше, но тоже неплохие.max50 писал(а): но их цена кусается. Мне надо десать таких.