Страница 135 из 304

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

Добавлено: Ср июн 13, 2012 15:07:49
осторожно! леоныч!!!
Ладно, спасибо. Буду дальше разбираться.

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

Добавлено: Чт июн 14, 2012 07:02:20
осторожно! леоныч!!!
Тяжело идет освоение программы. Вопрос такой, может есть у кого нибудь библиотека для микросхемы TDA6508 для баскома ? Никак не могу вьехать в управление. Хотя вроде и надо не много, управление данной микросхемой (кстати это микросхема тв тюнера ks-h-148) то есть тв тюнером,вывод частоты на дисплей и включение выключение усилителя. Управление всего 3 кнопки.

Есть даташит на микросхему http://p-45.narod.ru/files/TDA6508_6508 ... 509A_1.pdf

Есть куски кода которые бы могли пригодится но они на "С" http://roboforum.ru/forum16/topic9207.html

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

Добавлено: Чт июн 14, 2012 09:28:29
осторожно! леоныч!!!
Перекопал кучу страниц и форумов в гугле. Теперь просто уверен что ни кто не поможет. Информации для меня не достаточно, а у всех как известно свои проблемы так что можно как говориться сворачивать удочки........ Даже начать несчего, одни термометры и часы повсюду... ппц......

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

Добавлено: Чт июн 14, 2012 11:28:08
Moto_v3x
осторожно! леоныч!!!

Будет примерно так

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

'   /////////////////////////
'// for KS-H-146, KS-H-148

Const__gainoff Alias &B10001000
Const__gainon Alias &B10001001                              ' Weak Signal Booster On
Const__loband Alias &B00000001
Const__miband Alias &B00000010
Const__hiband Alias &B00001100
Dim Frcvwork As Long
Dim Rcvpch1 As Word
Declare Sub Ksh14xpll
'////////////////////
Frcvwork = 145500

Sub Ksh14xpll

  Dim Fpch1 As Word
  Dim Band As Byte
  Dim Temp As Byte

     Band = Const__loband

     If Frcvwork > 155000 Then
      Band = Const__miband
     End If

     If Frcvwork > 440000 Then
      Band = Const__hiband
     End If


     Fpch1 = Frcvwork + Rcvpch1
     Fpch1 = Fpch1 / 50

     I2cstart

     I2cwbyte &B11000000                                    'Tuner Address
     Temp = High(fpch1)
     I2cwbyte Temp
     Temp= low(fpch1)
     I2cwbyte Temp
     I2cwbyte Const__gainon                                 ' Const__gainon : Const__gainoff);
     I2cwbyte Band


     I2cstop
End Sub

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

Добавлено: Чт июн 14, 2012 11:38:32
edm2007
осторожно! леоныч!!! писал(а):Даже начать несчего, одни термометры и часы повсюду... ппц......
А работа I2C в термометрах и часах чем отличается от Вашего тюнера?! С железякой нужно разбираться, смотреть какие адреса регистров за что отвечают, и что им отправлять нужно. А уж заслать - дело второе и более простое. Тут и термометр можно ради примера взять, алгоритм-то один.

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

Добавлено: Чт июн 14, 2012 12:16:12
осторожно! леоныч!!!
Дело в том что с термометра идет в основном прием данных. Передается только его номер в начале цикла программы (после инициализации) а в тюнере все по другому, в основном все на него передается и все. Лишь при желании можно прочитать с него информацию. Что передавать видно из таблицы даташита, но при попытке работы с i2c компилятор постоянно ругался....

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

Добавлено: Чт июн 14, 2012 12:29:04
осторожно! леоныч!!!
Огромное спасибо Moto_v3x!!!! Уже есть от чего оттолкнуться и над чем подумать! :beer:

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

Добавлено: Чт июн 14, 2012 12:49:59
edm2007
осторожно! леоныч!!! писал(а):Дело в том что с термометра идет в основном прием данных.
Да ладно? Например, LM75 не просто датчик, но и термостат, с регистрами порогов и конфигурации. И их тоже записывать нужно. Я же писал:
Алгоритм чтения следующий:

1. Генерируем старт обмена
2. Передаем адрес записи устройства
3. Передаем адрес регистра, к которому хотим обратиться
4. Генерируем старт обмена
5. Передаем адрес чтения устройства
6. Получаем данные
7. Завершаем процедуру чтения
Алгоритм записи (который гораздо проще чтения) следующий:

1. Генерируем старт обмена
2. Передаем адрес записи устройства
3. Передаем адрес регистра, который хотим записать
4. Передаем данные для записи
5. Завершаем процедуру записи

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

Добавлено: Чт июн 14, 2012 13:06:59
осторожно! леоныч!!!
С LM75 не знаком совсем... Я вообще не любитель всяких термометров но за информацию спасибо все равно. :)

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

Добавлено: Чт июн 14, 2012 13:12:55
осторожно! леоныч!!!
Вроде все понял, Кроме этих двух строчек

Declare Sub Ksh14xpll Это вроде подпрограмма. Где должна быть тогда строка разберемся.

Frcvwork = 145500 это наверное предустановка частоты тюнера?

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

Добавлено: Чт июн 14, 2012 13:13:36
edm2007
Да при чем тут термометры?! Он по шине I2C работает! Почему Вы ищите только то, что касается Вашего тюнера? Смотрите исходники работы с I2C, все остальное есть в даташите.
Вроде все понял, Кроме этих двух строчек
http://decada.org.ru/project/lessons/bascom_avr/

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

Добавлено: Чт июн 14, 2012 13:18:44
осторожно! леоныч!!!
За ссылку спасибо. Да я уже и так читаю все что нахожу.

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

Добавлено: Ср июн 20, 2012 15:42:59
vanyap1
Подскажите пожалуйста, каким образом можно ввести в с клавиатуры цифры. Как в телефоне например? Клавиатура матричная 4Х4

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

Добавлено: Ср июн 20, 2012 18:13:35
amv2000
vanyap1 писал(а):Подскажите пожалуйста, каким образом можно ввести в с клавиатуры цифры. Как в телефоне например? Клавиатура матричная 4Х4
Ввести куда? Если надо пример реализации то вот http://www.qsl.net/pa3ckr/bascom%20and% ... index.html
Есть еще встроенная функция GETKBD(), но я ей не пользовался есть пример в хелпе Bascoma.

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

Добавлено: Чт июн 21, 2012 07:02:44
amv2000
На русском языке здесь http://decada.org.ru/project/lessons/bascom_avr/13/
А еще мне понравилось подключение по одному проводу идея не нова, но мне было в диковинку.

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

'**************************определение значения кнопки****************************
Sub Knob
U1 = Getadc(3)
    If U1 > 993 Then                                        'если кнопки не нажаты то на выход
     Knopka = "W"
     Goto Nop2                                              '
    End If
     If U1 < 32 Then : Knopka = "S" : Goto Nop2 : End If    '
     If U1 > 33 Then : If U1 =< 96 Then : Knopka = "T" : Goto Nop2 : End If : End If
     If U1 > 97 Then : If U1 =< 160 Then : Knopka = "M" : Goto Nop2 : End If : End If
     If U1 > 161 Then : If U1 =< 224 Then : Knopka = "I" : Goto Nop2 : End If : End If
     If U1 > 225 Then : If U1 =< 288 Then : Knopka = "U" : Goto Nop2 : End If : End If
     If U1 > 289 Then : If U1 =< 352 Then : Knopka = "." : Goto Nop2 : End If : End If
     If U1 > 353 Then : If U1 =< 416 Then : Knopka = "0" : Goto Nop2 : End If : End If       '
     If U1 > 417 Then : If U1 =< 480 Then : Knopka = "1" : Goto Nop2 : End If : End If
     If U1 > 481 Then : If U1 =< 544 Then : Knopka = "2" : Goto Nop2 : End If : End If
     If U1 > 545 Then : If U1 =< 608 Then : Knopka = "3" : Goto Nop2 : End If : End If:
     If U1 > 609 Then : If U1 =< 672 Then : Knopka = "4" : Goto Nop2 : End If : End If
     If U1 > 673 Then : If U1 =< 736 Then : Knopka = "5" : Goto Nop2 : End If : End If
     If U1 > 737 Then : If U1 =< 800 Then : Knopka = "6" : Goto Nop2 : End If : End If       '
     If U1 > 801 Then : If U1 =< 864 Then : Knopka = "7" : Goto Nop2 : End If : End If
     If U1 > 865 Then : If U1 =< 928 Then : Knopka = "8" : Goto Nop2 : End If : End If
     If U1 > 929 Then : If U1 =< 992 Then : Knopka = "9" : End If : End If
Nop2:
    End Sub
Подробнее http://forum.avr.ru/bascom-avr-kak-beat ... 796p3.html

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

Добавлено: Чт июн 21, 2012 12:28:09
edm2007
Нагорожено конечно, кошмар. Кто мешал проверять диапазоны так:

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

If U1 > 225 And U1 =< 288 Then...
Или через Select Case

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

Case 225 To 288:
Правда, второй вариант более прожорлив...

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

Добавлено: Чт июн 21, 2012 12:50:12
amv2000
edm2007 писал(а):Нагорожено конечно, кошмар.
Ну тут наверное важнее основная идея. :)
Кстати или не кстати насчет дисплея Nokia 3310 китайца, на сайте avrproject появилась библиотека нормально работающая и выводящая графику, оказывается все таки виновник дисплей, а не руки из жопы... :)))

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

Добавлено: Чт июн 21, 2012 13:31:52
edm2007
amv2000 писал(а):Ну тут наверное важнее основная идея.
Ага, так оно и есть. :)) Кстати, такой вариант не сильно больше, но нагляднее:

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

Select Case U1

     Case Is <= 32 : Knopka = "S"
     Case 33 To 96 : Knopka = "T"
     Case 97 To 160 : Knopka = "M"
     Case 161 To 224 : Knopka = "I"
     Case 225 To 288 : Knopka = "U"
     Case 289 To 352 : Knopka = "."
     Case 353 To 416 : Knopka = "0"
     Case 417 To 480 : Knopka = "1"
     Case 481 To 544 : Knopka = "2"
     Case 545 To 608 : Knopka = "3"
     Case 609 To 672 : Knopka = "4"
     Case 673 To 736 : Knopka = "5"
     Case 737 To 800 : Knopka = "6"
     Case 801 To 864 : Knopka = "7"
     Case 865 To 928 : Knopka = "8"
     Case 929 To 992 : Knopka = "9"
     Case Is >= 993 : Knopka = "W"

End Select
amv2000 писал(а):все таки виновник дисплей, а не руки из жопы...
Ну и славно. :)

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

Добавлено: Чт июн 21, 2012 16:40:33
raf65
edm2007 писал(а):
amv2000 писал(а):Ну тут наверное важнее основная идея.
Ага, так оно и есть. :)) Кстати, такой вариант не сильно больше, но нагляднее:

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

Select Case U1

     Case Is <= 32 : Knopka = "S"
     Case 33 To 96 : Knopka = "T"
     Case 97 To 160 : Knopka = "M"
     Case 161 To 224 : Knopka = "I"
     Case 225 To 288 : Knopka = "U"
     Case 289 To 352 : Knopka = "."
     Case 353 To 416 : Knopka = "0"
     Case 417 To 480 : Knopka = "1"
     Case 481 To 544 : Knopka = "2"
     Case 545 To 608 : Knopka = "3"
     Case 609 To 672 : Knopka = "4"
     Case 673 To 736 : Knopka = "5"
     Case 737 To 800 : Knopka = "6"
     Case 801 To 864 : Knopka = "7"
     Case 865 To 928 : Knopka = "8"
     Case 929 To 992 : Knopka = "9"
     Case Is >= 993 : Knopka = "W"

End Select
этот вариант почти но 100 байтов больше

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

Добавлено: Чт июн 21, 2012 16:42:27
edm2007
Угу, Select Case прожорливая вещь. :)