еще можно доктором http://www.getchip.net/posts/059-isp...usebit-doctor/
но высоковольтный программатор будет более полезен, как минимум можно вывод ресет использовать как порт
еще можно доктором http://www.getchip.net/posts/059-isp...usebit-doctor/
но высоковольтный программатор будет более полезен, как минимум можно вывод ресет использовать как порт
AVR Fuse Doctor погуглите, отличная вещь для исправления фьюзов, что бы не заморачиваться постройкой высоковольтного программатора
Спасибо от ur3vcd
Мой вариант (к этой штуке цепляется "жертва", включаем и... готово)
Делал вроде по этой статье, но точно не помню уже
http://www.getchip.net/posts/059-isp...usebit-doctor/
Спасибо от ur3vcd
Спасибо огромное, буду собирать fusebit doctor. Благо атмега8 есть, правда в СМД, но ничего страшного. Тинька24 у меня тоже в смд, феном перепаяю...
У меня была ещё одна запасная тини24 и я продолжаю отстраивать свой термостат и теперь у меня другая проблема. Неадекватно работает АЦП. В протеусе все работает нормально - с терморезистора через нормирующий операционный усилитель LM358 и с его выхода напряжение около 3В через резистор 200Ом подавю на вход АЦП. АЦП сконфигурирован так: Config Adc = Single , Prescaler = Auto , Reference = Avcc... Но в живом устройстве с выхода операционника имею 3В, а на ножке микроконтроллера всего 0,4-0,6 и оно дрейфут. Такое чувство что что-то снижает входное сопротивление МК! Точно такая же картинка было и на МК, который только что запорол... Что может садить вход МК? Может ли это быть аппаратно?
Скрытый текст
$regfile = "attiny24.dat" 'настройки микроконтроллера$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Portb.0 = Output 'Выход общего анода старшего разряда
Config Portb.1 = Output 'Выход общего анода среднего разряда
Config Portb.2 = Output 'Выход общего анода младшего разряда
Config Porta.7 = Output 'Управление ключем нагревателя
Config Porta.6 = Output 'Выход SH_CP
Config Porta.5 = Output 'Выход ST_CP
Config Porta.3 = Output 'Выход DS
Config Pina.1 = Input 'Кнопка DN
Config Pina.2 = Input 'Кнопка UP
Ds Alias Porta.3
Sh_cp Alias Porta.6
Const St_cp = 5
Dim Temper As Integer 'Переменная Температуры
Dim Ustavka As Integer 'Переменная Задания температуры
Dim Heat As Bit 'Переменная состояния нагревателя
Dim Indhi As Integer 'Промежуточная переменная старшего разряда индикатора (десятки)
Dim Indmed As Integer 'Промежуточная переменная среднего разряда индикатора (единицы)
Dim Indlo As Integer 'Промежуточная переменная старшего разряда индикатора (десятые)
Dim R As Byte 'Промежуточная переменная отправляемого в сдвиговый регистр индикатора
Dim K As Integer 'Промежуточная переменная отправляемого в индикатор
Dim N As Byte
Dim N1 As Byte
Dim Gisteresis As Integer
Ustavka = 200
Start Adc
Do
Temper = Getadc(0) 'Опрашиваем АЦП с термодатчиком
Temper = 1024 - Temper
Gisteresis = Ustavka + 1
Debounce Pina.2 , 0 , Up , Sub 'Опрашиваем кнопку увеличения температуры
Debounce Pina.1 , 0 , Dn , Sub 'Опрашиваем кнопку уменьшения температуры
K = Temper
Gosub Indic
If Temper < Ustavka Then 'Управляем обогревателем
Heat = 1
Else
If Temper >= Gisteresis Then
Heat = 0
Else
End If
End If
Porta.7 = Heat
Loop
End
Up:
Ustavka = Ustavka + 10
If Ustavka > 750 Then
Ustavka = 100
Else
End If
Gosub Blic
Return
Dn:
Ustavka = Ustavka - 10
If Ustavka < 100 Then
Ustavka = 750
Else
End If
Gosub Blic
Return
Blic:
K = Ustavka
For N1 = 0 To 3
For N = 0 To 15
Gosub Indic
Next
Waitms 100
Next
Return
Indic:
'раскладываем число на составляющие
Indhi = K / 100 'подготовка десятков
Indmed = K Mod 100 'подготовка единиц
Indlo = Indmed Mod 10 'подготовка десятых долей
Indmed = Indmed / 10
R = Lookup(indhi , Numbers) 'вытаскиваем из массива подготовленные значения
Shiftout Ds , Sh_cp , R , 1 'задвигаем в регистры значения
Portb.2 = 0 'включаем общий старшего разряда
Pulseout Porta , St_cp , 2 'защелкиваем данные в регистре
Waitms 1
Portb.2 = 1 'тушим общий старшего разряда
R = Lookup(indmed , Numbers) 'вытаскиваем из массива подготовленные значения
R = R + Bits(2)
Shiftout Ds , Sh_cp , R , 1 'задвигаем в регистры значения
Portb.1 = 0 'включаем общий среднего разряда
Pulseout Porta , St_cp , 2 'защелкиваем данные в регистре
Waitms 1
Portb.1 = 1 'тушим общий среднего разряда
R = Lookup(indlo , Numbers) 'вытаскиваем из массива подготовленные значения
If Heat = 1 Then
R = R + Bits(2)
Else
End If
Shiftout Ds , Sh_cp , R , 1 'задвигаем в регистры значения
Portb.0 = 0 'включаем общий младшего разряда
Pulseout Porta , St_cp , 2 'защелкиваем данные в регистре
Waitms 1
Portb.0 = 1 'тушим общий младшего разряда
Return
Numbers:
' BFAEDHCG
Data &B11111010 '0
Data &B10000010 '1
Data &B10111001 '2
Data &B10101011 '3
Data &B11000011 '4
Data &B01101011 '5
Data &B01111011 '6
Data &B10100010 '7
Data &B11111011 '8
Data &B11101011 '9
Добавлено через 37 минут(ы):
снимаю свой вопрос - оказался бракованный резистор в 200Ом
Последний раз редактировалось ur3vcd; 22.01.2016 в 01:36.
проверьте конфигурацию порта на который назначен АЦП, должен быть настроен как вход Z если по ошибке настроите как выход то получите коротыш в несколько десятков ОМ
Дополнение к личному сообщению для Сашоок. Прошивка для синтезатора на 8х2.
Спасибо от RA2FIM
Всех Радиолюбителей с Новым годом. Просьба помочь с примером кода на баскоме реализации системы САТ в синтезаторах. К сожалению пока не могу найти в интернете.
То же самый CAT, Флексы протокол Кенвуда 2000 используют,там не чего не комментировано, но если не разберётесь, спрашивайте.
Заказал DDS si5351 сделал плату синтезатора для SDR и попробовал выложенный исходник ZL2PD на баскоме,правда кое что изменил а именно центральную частоту захвата PLL в коде и только тогда он заработал нормально у меня,но может просто такая микросхема,заказывал дешево у китайцев 5 шт
Но зато проверил в железе работает от десятков килогерц до примерно 185Мгц.До этого много искал исходники в свободном доступе но большинство на С или ардуине а это целая история с их сборкой,все таки баском намного проще и наверное привычнее да и микросхему с него любую atmel запрограммируешь.
Выкладываю проверенный в железе исходник для Atmega32a и si5351a.Может кому то пригодится так как подробно разжеванного описания на этот синтезатор на русском нет а для новичка в этой DDS разобраться с математическими формулами целая проблема так что может будет полезным этот исходник.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)