200 сообщений в этой теме

brown    0

Все вроде бы правильно, но! вторую команду lcdout я бы переставил (см.

ниже), так как на ее исполнение требуется на много больше чем 100мкС.

это ошибка!? Проверь Протеусом-сообщи результат! Сам до него ни как не

доберусь;(

Может проще использовать TMR0 с предделителем?

DEFINE LCD_DREG PORTC 'LCD data port B

DEFINE LCD_DBIT 4 'LCD data starting bit 0 or 4

DEFINE LCD_RSREG PORTC 'LCD register select port D.1

DEFINE LCD_RSBIT 1 'LCD register select bit 1

DEFINE LCD_EREG PORTC 'LCD enable port D.3

DEFINE LCD_EBIT 3 'LCD enable bit

DEFINE LCD_BITS 4 'LCD bus size 4 or 8

DEFINE LCD_LINES 2

DEFINE LCD_COMMANDUS 2000 'Command delay time in us

DEFINE LCD_DATAUS 50 'Data delay time in us

DEFINE OSC 20

od var byte

w1 var word

od100 var byte

od1km var word

F var word

st var bit

i var word

@ device WDT_OFF

OPTION_REG = $C7

trisB=255

LCDOUT $FE, 1,"Privet Andrey",#portb

pause 500

st=1

F=0

w1=1

intcon=$C0

T1CON=0

On Interrupt Goto signal

m:

if st=1 then

if PortB.7=1 and w1=1 then start

if PortB.7=0 and w1=0 then stoping

endif

goto m

start:

TMR1H=254

TMR1L=12

T1CON=1

PIE1=1

w1=0

high portc.0

goto ex

stoping:

PIE1=0

T1CON=0

od1km=F*3

LCDOUT $FE, 2, #od1km, " ", #F, " "

w1=1

F=0

low portc.0

ex:

st=1

goto m

Disable

signal:

f=f+1

TMR1H=254

TMR1L=12

PIR1=0

st=1

Resume

Enable

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yrok    0

О!!

Спасибо за ответ!!!

Я уже подумал ветка заброшена--вот и несмотрел.

Попробовал переставленный вариант--тоже неправильные показания!!!

При входных импульсах 10мс--показывает 82(отрезка)

при 12мс--99

что делать незнаю???!!!!!

бился и так и эдак результат нулевой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Nuken    0

В РВР есть PULSIN для измерения длительности импульса. Если используется кварц на 20 МГц, то возвращается результат с инкрементом 2 мкс (например, если результат 200, то длина импульса 200х2 мкс).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yrok    0

Дело в том что при исполнении команды Pulsin--ничего параллельно делать нельзя--микроконтроллер тупо будет ждать конца импульса считая отрезки по 2 мксек.

А если длина импульса 1-50 мсек--а при этом надо еще следить за другим входом и регистрировать на нем количество приходящих импульсов--тогда команда Pulsin неподходит.

Поэтому пришлось написать свою программу подсчета длительности импульса--и теперь надо разобраться почему она неправильно считает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

Nuken    0

1)

m:

if st=1 then

if PortB.7=1 and w1=1 then start

if PortB.7=0 and w1=0 then stoping

endif

goto m

Вот тут нету ошибки? Один ENDIF и 3 IF. На сколько помню, каждому IF должен бвть свой ENDIF.

2) В самих доках по PBP написано, что нужно использовать GOTO Label как можно меньше и лучше юзать GOSUB ... RETURN. Это тоже может вызывать глюки. Допишите в каждую подрограмму st=1 и вызывайте из подрограммы m start и stoping через GOSUB ... RETURN.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yrok    0
m:

if st=1 then

if PortB.7=1 and w1=1 then start

if PortB.7=0 and w1=0 then stoping

endif

goto m

ошибки нет--если после if исполняется один оператор то endif ставить ненадо!!!

поменял на gosub и return

теперь при входных импульсах 10мс--показывает 88-89 отрезков(результат бегает от 88-89)

т.е. регистрирует входной импульс длительностью 8.8-8.9 мсек---короче теряется 1.1-1.2 мсек

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
narzan    0
m:

if st=1 then

if PortB.7=1 and w1=1 then start

if PortB.7=0 and w1=0 then stoping

endif

goto m

ошибки нет--если после if исполняется один оператор то endif ставить ненадо!!!

поменял на gosub и return

теперь при входных импульсах 10мс--показывает 88-89 отрезков(результат бегает от 88-89)

т.е. регистрирует входной импульс длительностью 8.8-8.9 мсек---короче теряется 1.1-1.2 мсек

Комментарий: после конструкции If ... Then лучше всегда ставить endif, т.к. возможны недокументированные глюки, что я неоднократно замечал, читая получившийся после компиляции файл ассемблера.

Все временные интервалы лучше задавать через прерывание по таймеру и по возможности прогонять на симуляторе.

В Вашем случае необходимо использовать АППАРАТНОЕ прерывание, а именно конструкцию DEFINE INTHAND метка, и далее на ассемблере сохранение регистров при входе в прерывание и восстановление при выходе из прерывания. Читайте мануал, там есть пример, как это сделать.

Изменено пользователем narzan

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет программисты! Помогите начинающему Делаю автомат управления освещением аквариума на PIC16F874 и LCD WH0802. Пишу на PicBasic. Половину программы написал, а дальше что-то не могу. Короче как автомат должен работать: Включаю, на дисплее надпись "введите время", выставляю, потом надпись "установите интервал" ( например включение света от 8.00 до 21.00 ), после того как все настроил на дисплее идет время и в зависимости от времени включается/выключается свет. Программу часов я написал, всякие надписи типа "введите время" я смогу сделать, настроить интервал включения тоже сам смогу, но я не знаю как выставлять время. Алгоритм проги, которую я написал:

объявил переменные:

i var byte

w var byte

a var byte

i - часы

w - минуты

a - секунды

теперь сама программа

main:

for i = 0 to 23

for w = 0 to 59

for a = 0 to 59

LCDOUT $FE, 1, #i, ":", #w, ":", #a

pause 1000

next a

next w

next i

goto main

прога рабочая, проверено.

Я пробовал выставлять время так:

if portc.0 = 0 then M = M (переменная) + 1

if portc.1 = 0 then w = m

т.е. если кнопка, подключенная к портС.0 нажата например 5 раз, то

переменная М = 5, если нажата вторая кнопка, то минуты = 5, но так не катит. Подскажите, как можно настраивать время

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
evgenb    0

Данила

Для развития проекта, его лучше выложить со схемой в протеусе.

И потихоньку совершенствовать. по ходу учится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Dm17    0

Опишите плз. полный алгоритм действий для 1-wire!!!

Для ds1820 уже разобрался (содрал пример с сайта), но вот как считать напругу с ds2450 не могу понять.

Если не сложно набросайте пример работы с ds2450 под picbasic pro

PLZ

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
pacan40    0

тоже начал мучать picbasic, тут возник вопрос: как подцепить и написать прогу под управление валкодером в пикбесике, конкретно под tda7313?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
sot    0

Народ как в Pic Basic вывести на LSD байт в шестнадцатиричном виде?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
capitan DIC    0

Люди! не могу разобраться с командой : FOR....NEXT. Кто нибудь для примера, дайте простенькую прогу с этой командой.

И желательно с пояснением!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oneeyeman    0

подскажите пожалуйста в чем проблема?

элементарная програмка (включения и выключения светодиода)

loop:

high 10

pause 1000

low 10

pause 1000

goto loop

компилируется и на пик симуляторе запускается только на половину...

светодиод загорается но тухнуть не хочет...

пытаюсь написать ее же и скомпилировать в прилогающемся к пик симулятору бейсик компиляторе

так пишет что в строчке "pause 1000" ошибка...

в чем дело?

помогите разобраться пожалуйста?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
wowa    4

Уведите какой именно BASIC компилятор используете...

А есть там вообще подпрограма pause? и какой параметр берёт на вход? Может быть это в секундах? Тогда всё правильно у вас работает :) Потухнет через через 16 с копейкой секунд :) Какую именно ошибку выдайт в этой строке? Я на бейсике не писал ничего с времён школы.. лет 20 уже...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lev@    1
тоже начал мучать picbasic, тут возник вопрос: как подцепить и написать прогу под управление валкодером в пикбесике, конкретно под tda7313?

Тоже сижу мучаю прогу под ЭНКОДЕР (2 шт, подключены к RB4:7)- PicBasicPRO

На даный момент имею:

'****************************************************************
'*  Name	: Обработчик сигналов энкодера					  *
'*  Author  : Lev@											  *
'*  Notice  : Copyright © 2009 Lev@						   *
'*		  : All Rights Reserved							   *
'*  Date	: 20.10.2009										*
'*  Version : 1.0											   *
'*  Notes   :												   *
'*		  :												   *
'****************************************************************
REGIN VAR BYTE
FLAGIN VAR BYTE

TRISB = %11110000	   	' Направление порта В			   
OPTION_REG = %10000000	  ' Подтягив. резисторы
ON INTERRUPT GOTO INT   	' При прерывании переход к подпрограмме
INTCON = %10001000		  ' Разрешение глоб. прерываний, прерывания по изм. RB7:RB4   
REGIN=0			  ' Очистка всех ячеек регистров
FLAGIN=0						  

' Заносим состояние входов в память
IF PORTB.4=1  THEN 
REGIN.0=1	
ELSE 
REGIN.0=0
ENDIF
IF PORTB.5=1  THEN 
REGIN.1=1	
ELSE 
REGIN.1=0
ENDIF
IF PORTB.6=1  THEN 
REGIN.2=1	
ELSE 
REGIN.2=0
ENDIF
IF PORTB.7=1  THEN 
REGIN.3=1	
ELSE 
REGIN.3=0
ENDIF			   

Main:					   ' < Основная программа
GOTO Main			   	' Зацикливание осн. программы >

DISABLE					 ' < Запрет всех прерываний
INT:					' Метка подпрограммы - обработчика прерываний
IF INTCON.0 = 0 THEN ET ' Проверка флага прерываний - было ли прерывание по изм. RB7:RB4

IF PORTB.4 <> REGIN.0 THEN 
 FLAGIN.0=1			  ' Установить флаг прерывания от соотв. входа RB4
   IF FLAGIN.1=1 THEN	 ' Проверка наличия изменения сигнала на парном выводе
	 PORTB.0=1			' Если да - импульс
	 PAUSE 100			' Формируем задежку импульса 0,1с
	 PORTB.0=0			' Конец импульса
	 FLAGIN.0=0			' Обнуляем флаг прерывания от соотв. входа RB4
	 FLAGIN.1=0			' Обнуляем флаг прерывания от соотв. входа RB5
   ENDIF
ENDIF
 IF PORTB.5 <> REGIN.1 THEN 
 FLAGIN.1=1			  ' Установить флаг прерывания от соотв. входа RB5
   IF FLAGIN.0=1 THEN	 ' Проверка наличия изменения сигнала на парном выводе
	 PORTB.1=1			' Если да - импульс
	 PAUSE 100			' Формируем задежку импульса 0,1с
	 PORTB.1=0			' Конец импульса
	 FLAGIN.0=0		   ' Обнуляем флаг прерывания от соотв. входа RB4
	 FLAGIN.1=0		   ' Обнуляем флаг прерывания от соотв. входа RB5
   ENDIF
ENDIF
IF PORTB.6 <> REGIN.2 THEN 
 FLAGIN.2=1			  ' Установить флаг прерывания от соотв. входа RB6
   IF FLAGIN.3=1 THEN	 ' Проверка наличия изменения сигнала на парном выводе
	 PORTB.2=1			' Если да - импульс
	 PAUSE 100			' Формируем задежку импульса 0,1с
	 PORTB.2=0			' Конец импульса
	 FLAGIN.2=0			' Обнуляем флаг прерывания от соотв. входа RB6
	 FLAGIN.3=0			' Обнуляем флаг прерывания от соотв. входа RB7
   ENDIF
ENDIF
IF PORTB.7 <> REGIN.3 THEN 
 FLAGIN.3=1			  ' Установить флаг прерывания от соотв. входа RB7
   IF FLAGIN.2=1 THEN	 ' Проверка наличия изменения сигнала на парном выводе
	 PORTB.3=1			' Если да - импульс
	 PAUSE 100			' Формируем задежку импульса 0,1с
	 PORTB.3=0			' Конец импульса
	 FLAGIN.2=0			' Обнуляем флаг прерывания от соотв. входа RB6
	 FLAGIN.3=0			' Обнуляем флаг прерывания от соотв. входа RB7
   ENDIF
ENDIF
ET:					' Подготовка к выходу из обработчий
INTCON.0=0		 ' Сброс флага прерываний по изм. RB7:RB4
RESUME
ENABLE					  ' Разрешение всех прерываний >
END

Это еще не конец. Еще допишу правильный выход из обработки. Потом скорее всего в асемблере откоректирую... :)

подскажите пожалуйста в чем проблема?

элементарная програмка (включения и выключения светодиода)

loop:

high 10

pause 1000

low 10

pause 1000

goto loop

компилируется и на пик симуляторе запускается только на половину...

светодиод загорается но тухнуть не хочет...

пытаюсь написать ее же и скомпилировать в прилогающемся к пик симулятору бейсик компиляторе

так пишет что в строчке "pause 1000" ошибка...

в чем дело?

помогите разобраться пожалуйста?

Если используешь Basic Compiler встроенный в PIC Simulator IDE - то там нету такой процедуры - юзай хелп к нему. А можешь как я - учить PicBasicPRO к нему есть поболее документации. (Кста Ты ею и пользуешься судя по всему, токо Basic Compiler это совсем другой язык)

Качай вот сдесь компилятор сцылка

Изменено пользователем wowa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lev@    1

Вопрос:

Допустим есть B VAR BYTE как сделать побитную выборку? т.е. х=В0, В1, ... В7

Изменено пользователем Lev@

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    551

Не знаю синтаксиса языка PicBasic, но побитную выборку можно сделать с помощью лог. операций AND и OR

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lev@    1
Не знаю синтаксиса языка PicBasic, но побитную выборку можно сделать с помощью лог. операций AND и OR

сам только учусь.

по логике вещей должно быть что-то похожее на

x VAR bit
B VAR byte

For i=0 to 7
x=B(i)
Next i

Но почему-то не хочет так работать...

Изменено пользователем Lev@

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А с чего это оно будет работать ? У вас В это что массив какой-то ? :)

Не знаю как в барсике, но в СИ если нужно работать с числом на уровне битов можно использовать битовое поле.

Изменено пользователем a_sergeevich

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lev@    1

И как это сделать?

Правилами запрещено цитировать предедущий пост. Пока вам предупреждение. Wowa.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для Си кратко:

Битовые поля

Внутри структурных типов могут быть организованы, так называемые, битовые поля. Такое поле начинается с младшего бита того слова, в котором оно будет размещаться. Битовые поля размещаются внутри 8-ми битных слов. Если поле не удается разместить в текущем байте структуры, то размещение продолжается в следующем байте. Битовые поля никогда не пересекают границу между 8-ми битовыми областями, выделенными для данной структуры. Например:

struct {

unsigned hi : 1;

unsigned dummy : 6;

unsigned lo : 1;

} foo @ 0x10;

В данном случае структура будет занимать один байт по адресу 0х10. При этом поле hi будет соответствовать нулевому биту, а lo – 7-му биту регистра по адресу 0х10. Младший бит поля dummy будет располагаться в первом, а старший – в 6-м битах регистра 0х10. Если структура описана, как показано выше, то она будет размещена по абсолютному адресу, и память под ее размещение выделяться не будет.

Если необходимо определить битовое поле, которое содержит неиспользуемые области, то можно указать безымянные поля:

struct {

unsigned hi : 1;

unsigned : 6;

unsigned lo : 1;

} foo @ 0x10;

Как это сделать на РВР я не знаю. Я честно сразу, когда заинтересовался пиками, тоже ломанул на РВР, но потом понял его ущербность и перешёл на Си и компиль-среда разработки микроСи, но сейчас учусь на HI-TEC там библиотек готовых меньше, что сподвигает более углубленному изучению :) и об этом решении ни грамма не жалею. Иногда то, что на первый взгляд выглядит просто потом выходит боком, да и консультацию по Си дадут 100% на форуме быстрее чем на барсике, а по нему могут вообще не дать, но это ИМХО.

Ещё Вам тут правильно подсказали, что чтение отдельных битов можно осуществлять с помощью побитовых операций в Си это & (И), |(ИЛИ) не путать с логическими операциями !!!.

Т.е смысл в том, что с помощью операции & и маски мы ненужные биты выключаем, а нужный считываем, например:

n = 00110101;

допустим нам надо узнать значение нулевого бита, тогда применяя маску 00000001

с = n & 00000001; мы передадим в "с" значение нулевого бита т.е 1, затем уже делаем с ним что нам надо.

00110101

&&&&&&&

00000001

---------

00000001

Чтобы включить биты (т.е, которые установлены в ноль) используем побитовую операцию ИЛИ (|)

n = 00110101;

c = 00000001;

c = c | n;

в результате "с" равно 00110101 т.е с == n

00000001

|

00110101

---------

00110101

Надеюсь объяснил понятно, уж аналог Си-шных побитных операций в барсике найдёте сами :)

Удачи и все же совет переходите на Си.

Изменено пользователем wowa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Lev@    1

Тогда это еще проще сделать на ASM - с помощью сравнения с "1" или "0" BTFSC и BTFSS ! Будет самый простой и КОРОТКИЙ код! ;)

Изменено пользователем Lev@

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В микроСи вообще доступ к битам осуществляется просто и наглядно:

char D;

bit0 = D.F0;

bit1 = D.F1 ну и т.д.

Честно асм вообще не знаю не лежит у меня к нему душа, как то на Си для себя мне проще и быстрее да и замарок меньше, хотя если Вы знаете асм накой Вам вообще этот барсик сдался ? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Kudich
      Всех приветствую!
      Сам я программирую на стандартной среде ардуинки, и в одном проекте потребовалось увеличить частоту ШИМ на портах 5,6,9,10,11,13 Arduino Micro. На этой ардуино стоит Atmega32u4, есть тут знатоки avr? Как повысить частоту на этих пинах?
    • Автор: Splav
      Речь пойдет о таймере цикличного включения вентиляции гаража.
      Стояла задача обеспечить принудительную вентиляцию гаража.
      Оставлять включенным вентилятор круглые сутки - неоправданно.
      Включать его периодически вручную... Неудобно и лишено смысла.
      Поэтому было решено включать его на определенное время через разные интервалы времени, в зависимости от субъективного восприятия наличия сырости в гараже.
      Вменяемых вариантов в продаже я не нашел.
      Можно, конечно, приобрести на Али программируемый суточный таймер или что-то подобное...
      Да, можно, но мне кажется, что собрать из подручных деталей тоже можно, ну и мозги потренировать.
      За основу был выбран PIC12F675, потому что он у меня был.
      По уму здесь должен стоять PIC12F629, он дешевле, в нем нет АЦП, который в конструкции не используется и отключен.
      Итак.
      Время работы выбрано фиксированным и неизменным - 1 час.
      Время простоя - в зависимости от режима.
      1 час - 2 часа - 3 часа.
      (Изначально я планировал другие задержки: 2-3-5 часов. На практике в моих гаражных условиях эти интервалы оказались слишком большими)
      Индикация осуществляется всего 1 светодиодом.
      Переключение режимов и управление - всего 1 кнопкой.
      Схема:

      Коротко о работе:
      Кнопка.
      Опрос кнопки 10 раз в секунду. Антидребезг и подавление помех 0,3с - 3 опроса подряд кнопка нажата.
      Короткое нажатие на кнопку(от 0,3 до 2 с) - переключение режимов по кругу. 1 - 2 - 3 - OFF - 1 - 2 -  ....
      Длинное нажатие на кнопку (дольше 2 с) - смена состояния реле.
      Если оно было включено - выключается.
      Если было выключено - включается. Интервалы работы реле при этом соответствуют режиму.
      В режиме OFF длинное нажатие ничего не меняет.
      Переключение режима или смена состояния реле происходят при отпускании кнопки.
      Светодиод.
      Индикация режимов светодиодом:
      1 - 1 раз в 2 секунды загорается, если реле не включено. Проблеск света.
            1 раз в 2 секунды гаснет, если реле включено. Проблеск тени.
      2 - 1 раз в секунду загорается, если реле не включено.
            1 раз в секунду гаснет, если реле включено.
      3 - 2 раза в секунду загорается, если реле не включено.
            2 раза в секунду гаснет, если реле включено.
      OFF - загорается раз в 5 секунд. Контроль того, что МК не завис.
      Режимы работы.
      Время работы циклического таймера по режимам:
      1 - 1 час работы / 3 часов отдых. 6/24
      2 - 1 час работы / 2 часа отдых.  8/24
      3 - 1 час работы / 1 часа отдых.  12/24
      Работа.
      При отключении питания, пока не разрядились конденсаторы фильтра, МК отключает все выходы, сохраняет текущие данные в память, ждет 15 сек в таком состоянии и возобновляет работу, если отключение было кратковременным и емкостей фильтра питания хватило.
      Если отключение питания было длительным то, при возобновлении питания, загружает сохраненные данные из памяти и продолжает работу.
      При первом включении, после программирования МК, устройство работает в 1-ом режиме.
      Программа писалась в MPLab X IDE v4.05.
      Прошивка:fan_cycle_timer.hex

      Плата для устройства не разрабатывалась. Все было собрано на макетке.
      В блоке питания использован стандартный трансформатор для монтажа на плату ТПК 2х9V с 2-мя вторичными обмотками на 9В.
      Использовал только одну из них. Вторая - не подключена, в "воздухе"
      Реле - HLS-14F1D-DC12V-C. С обмотка на 12В, и одной группой переключающих контактов на 10А/240VAC.
      Устройство собрано в корпусе щитка для автоматов на 8 модулей. Производитель VIKO.
      Закреплена плата на щиток через резьбовые дистанционные втулки с резьбой М3.
      В качестве вентилятора - вытяжной вентилятор диаметром 125мм ВЕНТС 125С
      Устройство на данный момент отработало в гараже все лето, температура воздуха в тени доходила до 32 градусов.
      Перегревов элементов и зависаний контроллера пока не было.
       
      Несколько фото для общего представления о конструкции.

    • Гость Keil
      Автор: Гость Keil
      Добрый день, ситуация такая - попались мне под руку куча рассыпухи в числе которых достаточное количетво тинек и прочей лабуды - пытась хеловродить, попробовал взять готовый пример работы тиньки и лсдишника здесь также имею ардуинку как  Айсипи и чудесно мигаю светодиодом на мк прошитом ею же  так вот при попытке залить код который по ссылке чуда не произошло.
      курение мануалов лсдишника дало понять лиш одно что старший и младший биты одинаковы с лсдишником со статьи - лсдишник рабочий (игрался контрастом одной строки через V0  и потенциометр ) - как в прочем и мк, было задумано ковырнуть все это в протеусе и атмельстудии, но результатом не увенчалось. Пожалуйста тыкните носом что да где не так.
      fail.zip
    • Автор: В гостях у Михалыча
      Приветики. На днях купил колонку сгоревшую под ремонт. При нажатии на кнопку включения сразу же нагревается микросхема (B6THM1016 1516arz) В интернете вообще нет ничего о ней. Как я понял, это контроллер сенсорных кнопок и питания (даже если включить зарядку, то микруха не греется, пока не нажмешь на кнопку), ибо есть еще две микросхемы, одна из них усилитель, а вторая-блютуз. Может ее получится как-то заменить или выкинуть вообще? 


    • Автор: Rusteka
      Продам микросхемы. Все микросхемы новые, в наличие.
      1. PIC18LF4550-I/P Microchip 65шт
      2. ATtiny85-20PU [DIP-8] Atmel 200шт
      3. PIC18LF452-I/L Microchip 50шт
      4. A29L040L-70F Amic 50шт