Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Общетехнические вопросы

Общетехнические вопросы Общие вопросы аналоговой и цифровой электроники.

Ответ
 
Опции темы Опции просмотра
Старый 30.06.2015, 09:45   #26
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 40
Сообщений: 901
Вес репутации: 1351/68
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: датчик ds18b20

Рак и сброс 500 мс?
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 30.06.2015, 09:57   #27
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 33
Сообщений: 1,382
Вес репутации: 2524/81
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от siargy Посмотреть сообщение
Рак и сброс 500 мс?
Ознакомтесь с этим.
Рак вне форума   Ответить с цитированием
Старый 30.06.2015, 10:28   #28
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 40
Сообщений: 901
Вес репутации: 1351/68
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: датчик ds18b20

В принципе нормально, только если единственный уарт в этом мк не занят)
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 30.06.2015, 11:47   #29
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 58
Сообщений: 2,837
Вес репутации: 3992/109
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от siargy Посмотреть сообщение
через прерывания по таймеру.

както думал о том что если 1варе подцепить на вывод RC2/CCP1 можно реализовать шину аппаратно. но на плате подругому развелось.
Аппаратно (хардварно) 1-wire удастся реализовать только на СТМ32... TIM+DMA... без прерываний... и даже многоканальный...
На СТМ8 можно полухардварно на таймере... с прерываниями...
На ПИКах проще ногодрыгом с контрольной суммой... или через UART...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 30.06.2015, 11:53   #30
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 58
Сообщений: 2,837
Вес репутации: 3992/109
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Рак Посмотреть сообщение
Ознакомтесь с этим.
Первоначально была апликуха Dallas... там и ссылка внизу есть...
Неудобство UART в том... что времянками здорово не поиграешься... и присутствует привязка к определённым ногам...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 30.06.2015, 13:03   #31
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 40
Сообщений: 901
Вес репутации: 1351/68
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от HHIMERA Посмотреть сообщение
На ПИКах проще ногодрыгом с контрольной суммой... или через UART...
а что не так с CAPTURE/COMPARE (CCP) MODULES
из того что сходу вижу - не переводит вывод в высокоимпедансное состояние, но это решаемо
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 30.06.2015, 14:52   #32
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 58
Сообщений: 2,837
Вес репутации: 3992/109
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от siargy Посмотреть сообщение
а что не так с CAPTURE/COMPARE (CCP) MODULES
Да всё не так... Это видно даже по отсутствию данного решения в инете...
В СТМ8 таймер имеет 3-4 канала ССР и режим предзагрузки... Пока выводится текущий слот... данные следующего слота уже в таймере...
При 3-ёх прерываниях таймера и частичной обработке данных в прерывании получаем при приёме/передаче байта ~17% потерь времени МК... В прерывании же выставляется и флаг готовности данных... остаётся только в майне проверить КС и передать данные на дисплей...
Т.к. в СТМ8 можно программно рулить приоритетами прерываний... а прерывания таймера 1-wire последовательные и короткие... то на динамической индикации это никак не отражается... нет даже смысла запрещать прерывания... даже если добавить ещё и приём с IR-пульта на другом таймере...
Цитата:
из того что сходу вижу - не переводит вывод в высокоимпедансное состояние, но это решаемо
Решаемо... но тоже убого...
На СТМ можно просто выставить open drain... хоть на выводе...хоть на порту...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 30.06.2015, 15:26   #33
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 40
Сообщений: 901
Вес репутации: 1351/68
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: датчик ds18b20

отсуствие готовых решений выглядит подозрительно, вот и сомневался.
но в стандартных примерах выдержка времени сделана на цикле задержки, что сразу накладывает ограничения на прерывания.
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 30.06.2015, 17:35   #34
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

если через прерывания по таймеру, то получается, что через каждый кусок времени программа должна бросать то что делает и выполнять функцию обновления 7-сегментного индикатора. А если в это время идёт чтение градусника?! Я не засекал сколько времени точно работает функция чтения градусника DS18B20, но включаю на это время светодиод - и на глаз это третья часть секунды. И на это время 7-сегментник будет погашен, что будет заметно пользователю - моргания...
Руслан вне форума   Ответить с цитированием
Старый 30.06.2015, 17:43   #35
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 37
Сообщений: 1,129
Вес репутации: 3762/85
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Руслан Посмотреть сообщение
Я не засекал сколько времени точно работает функция чтения градусника DS18B20, но включаю на это время светодиод - и на глаз это третья часть секунды.
1-wire оговаривает минимальное время между битами в посылке. Но не оговаривает максимального. Так что критичным по времени будет только время передачи одного бита. Между бит можно индикатор обновлять.
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.
yeskela вне форума   Ответить с цитированием
Старый 30.06.2015, 17:55   #36
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

влазить между чтением данных с градусника не хочется как-то - т.к. надёжность работы градусника - критично в моей задаче, а вот моргание 7-сегментного индикатора - просто не эстетично ). т.е. если взвешивать риски - то градусник лучше не трогать. Может как-то меньшими рисками можно индикатор заставить светиться без морганий?
На персоналке использовал бы потоки, в ПИКах как я понимаю никак...
Руслан вне форума   Ответить с цитированием
Старый 30.06.2015, 18:46   #37
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 58
Сообщений: 2,837
Вес репутации: 3992/109
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от yeskela Посмотреть сообщение
1-wire оговаривает минимальное время между битами в посылке. Но не оговаривает максимального. Так что критичным по времени будет только время передачи одного бита. Между бит можно индикатор обновлять.
Как-то пробовал 1-wire на СТМ8 на программных задержках... с CRC проблем не было... В общем случае... вопрос в том... когда возникнет прерывание от дисплея... CRC вполне ИМХО может отследить ошибки ...
Потом перешёл на полухардварное/хардварное решение TIM/TIM+DMA...
В простейшем случае... всё сводится к передаче/прёме массива... что легко обеспечивается даже в прерывании/DMA... типа...

const uint8_t OW_data_out[] = {0x00, 0xCC, 0x44, 0x00, 0xCC, 0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

где 0x00 ничего не означает... это проверка наличия датчика и существует только для упрощения подсчёта байтов...
Между 0x44, 0x00 задержка 1сек. тоже формируется аппаратно...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 30.06.2015, 18:55   #38
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 58
Сообщений: 2,837
Вес репутации: 3992/109
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Руслан Посмотреть сообщение
т.к. надёжность работы градусника - критично в моей задаче
Смотря что понимать под "критично"... Запуск преобразования раз в секунду, большая температурная инерция датчика...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 30.06.2015, 18:59   #39
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 37
Сообщений: 1,129
Вес репутации: 3762/85
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Руслан Посмотреть сообщение
влазить между чтением данных с градусника не хочется как-то - т.к. надёжность работы градусника - критично в моей задаче,
Это не "грязный хак", а нормальная работа алгоритма 1-wire. Вы читаете очередной бит, и до следующего бита обязаны сделать паузу не менее (не помню скольки) мкс. Не менее. Больше - можно, и на логику работы это не влияет.
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.
yeskela вне форума   Ответить с цитированием
Старый 01.07.2015, 01:28   #40
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 58
Сообщений: 2,837
Вес репутации: 3992/109
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от Руслан Посмотреть сообщение
Может как-то меньшими рисками можно индикатор заставить светиться без морганий?
Как вариант... засинхронизироваться с обновлением дисплея... Запустить дисплей через таймер... по прерыванию обслужить дисплей... и перед выходом из прерывания выплюнуть/считать один слот/один байт данных 1-wire...
Даже при частоте обновления дисплея в 200Гц на трёх разрядах... это 5мС времени между прерываниями... Т.е. если само прерывание, вместе с сохранением контекста, обслуживанием дисплея, работой с 1-wire и выходом из прерывания, по времени не превышает 5мС... то никакого мерцания дисплея не будет...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 05.07.2015, 19:34   #41
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

хочу установленную (контрольную) пользователем температуру записывать в EEPROM чтоб при выключении-включении прибора считывать установки из EEPROM.

Написал функции чтения и записи в EEPROM.

Если я по адресу 0x00 записываю значение 0xAA и ТУТ-ЖЕ его читаю с проверкой правильности (т.е. проверяю чтоб прочиталось 0xAA) то успешно чтение.


Я решил проверить чтение после выключения питания таким образом:
1) читаю данные с проверкой, что прочиталось 0xAA - ошибка т.к. ещё не было записано ничего - это ожидаемо
2) записываю 0xAA
3) выключаю питание и включаю - и срабатывает пункт 1) т.е. должно прочитаться то что было записано в п.2). Однако проверка того, что считанное значение равно 0xAA НЕ успешная.

Код:
void test_EEPROM2() //тест с откл. питания
{
    unsigned char uc_address;
    unsigned char uc_data_wr;
    unsigned char uc_data_rd;
    
    uc_address = 0x00;
    
//-------------------------------------------
    //1) прочитать
    uc_data_rd = 0;
    uc_data_rd = ee_read(uc_address);
    
    if (uc_data_rd == 0xAA) //проверка правильных данных при чтении
    {
     MYPIN1=1;//вкл.светодиод
    }


    //-----------------------------------------------
    uc_data_wr = 0xAA;    
    // 2) записать
    ee_write(uc_address, uc_data_wr);
    
     MYPIN3=1;//вкл.светодиод
}
Приложу на всяк случай сами функции чтения и записи:

Код:
unsigned char ee_read(unsigned char address)
{
                            //while(WR) continue;     //  пока идёт цикл записи, читать из EEPROM нельзя!
 EEADR=address;   //  адрес считываемого регистра
                            //SetBit(EECON1,0);       //  разрешаем чтение
 EEPGD=0;         //bcf EECON1, EEPGD ; выбрать EEPROM память данных
 RD=1;            //bsf EECON1, RD;  чтение
 return EEDATA;
}

//////////////////////////////////////////////////////////

void ee_write(unsigned char address, unsigned char data)
{
                            //while(WR) continue;     //  ожидаем пока завершится предыдущий цикл записи
EEADR=address;          //  адрес
EEDATA=data;            //  данные

EEPGD=0;         //bcf EECON1, EEPGD ; выбрать EEPROM память данных
WREN=1;          //разрешить запись
GIE=0;           //запретить прерывания

EECON2=0x55;  //  обязательная последовательность
EECON2=0xAA;
WR=1;         // bsf EECON1, WR; установить бит WR для начала записи

//GIE=1;           //разрешить прерывания
//asm("SLEEP");          

while(WR==1);//пока не станет 0 т.е. цикл записи завершён

WREN=0;          //запретить запись
}
А вот эта функция работает успешно:

Код:
void test_EEPROM()
{
    unsigned char uc_address;
    unsigned char uc_data_wr;
    unsigned char uc_data_rd;
    
    uc_address = 0x00;
    uc_data_wr = 0xAA;
    
     MYPIN0=1; //вкл.светодиод
    //-----------------------------------------------
    
    //записать
    ee_write(uc_address, uc_data_wr);
    
     MYPIN3=1;//вкл.светодиод
    
    //-----------------------------------------------
    
    //прочитать
    uc_data_rd = 0;
    uc_data_rd = ee_read(uc_address);
    
     MYPIN2=1;//вкл.светодиод
    
    if (uc_data_rd == uc_data_wr) //проверка правильных данных при чтении
    {
     MYPIN1=1;//вкл.светодиод
    }
}
Подскажите, пожалуйста, почему в функции test_EEPROM2() в пункте 1) чтение не верное т.е. 0xAA не читается, хотя 0xAA было записано перед выключением контроллера PIC18F452?

Заранее благодарю!
Руслан вне форума   Ответить с цитированием
Старый 07.07.2015, 00:27   #42
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

...есть мысль, что описанная в даташите "обязательная последовательность" должна быть написана не на Си, а на asm.

пытаюсь в программу на Си "обязательную последовательность" для записи EEPROM написать так:

Код:
asm("MOVLW 55h");
asm("MOVWF EECON2");
asm("MOVLW AAh");
asm("MOVWF EECON2");
asm("BSF EECON1,WR");
но при компиляции говорит: undefined symbol EECON2

Может элементарщину спрашиваю, прошу не судить строго...
Руслан вне форума   Ответить с цитированием
Старый 07.07.2015, 08:34   #43
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 40
Сообщений: 901
Вес репутации: 1351/68
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: датчик ds18b20

Руслан, а как выглядитт этот кусок в асме после компиляции?
Код:
EECON2=0x55;  //  обязательная последовательность
EECON2=0xAA;
WR=1;         // bsf EECON1, WR; установить бит WR для начала записи
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 07.07.2015, 11:19   #44
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

вечером посмотрю ассемблерный листинг (View - Dissambly Listing) сейчас нет возможности.

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

Кроме этого, я в инете нашёл несколько примеров работы с EEPROM на Си БЕЗ асемблерных вставок. Значит у людей работает?! Почему тогда у меня не работает (( Опять где-то хомутнул на элементарном, скорее всего...
Руслан вне форума   Ответить с цитированием
Старый 07.07.2015, 23:00   #45
Руслан
Senior Member
 
Регистрация: 26.05.2015
Возраст: 42
Сообщений: 253
Вес репутации: 62/0
Руслан will become famous soon enough
По умолчанию Re: датчик ds18b20

это на Си:
Код:
EECON2=0x55;  //  обязательная последовательность
EECON2=0xAA;
WR=1;         // bsf EECON1, WR; установить бит WR для начала записи
вот это на асемблере:

Код:
24:                EECON2=0x55;  //  обязательная последовательность
  000A    0E55     MOVLW 0x55
  000C    6EA7     MOVWF 0xfa7, ACCESS
25:                EECON2=0xAA;
  000E    0EAA     MOVLW 0xaa
  0010    6EA7     MOVWF 0xfa7, ACCESS
26:                WR=1;         // bsf EECON1, WR; установить бит WR для начала записи
  0012    82A6     BSF 0xfa6, 0x1, ACCESS
как видно, колличество команд на asm не увеличилось по сравнению с Си, так в чём же дело, почему EEPROM не пишет?

Последний раз редактировалось Руслан; 07.07.2015 в 23:05.
Руслан вне форума   Ответить с цитированием
Старый 08.07.2015, 00:02   #46
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,731
Вес репутации: 4545/132
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Достал старенькую плату с PIC18F452, кварц 10 MHz. Создал простой проект в CCS 4.110, воспользовался встроенными функциями для записи EEPROM. Прошил микроконтроллер с помощью PICKit2, прочитал EEPROM, убедился, что функции пишут (записать по адресу 0 значение 0x11). Открыл каталог проекта и посмотрел ассемблерный листинг встроенной функции. Что-то там побольше кода, чем у вас.
Цитата:
.................... write_eeprom (0, 0x11);
0070: CLRF FA9
0072: MOVLW 11
0074: MOVWF FA8
0076: BCF FA6.6
0078: BCF FA6.7
007A: BSF FA6.2
007C: MOVF FF2,W
007E: MOVWF 00
0080: BCF FF2.7
0082: MOVLB F
0084: MOVLW 55
0086: MOVWF FA7
0088: MOVLW AA
008A: MOVWF FA7
008C: BSF FA6.1
008E: BTFSC FA6.1
0090: BRA 008E
0092: BCF FA6.2
0094: MOVF 00,W
0096: IORWF FF2,F
Миниатюры
EEPROM.PNG  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 08.07.2015, 08:09   #47
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/106
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Достал старенькую плату с PIC18F452, кварц 10 MHz. Создал простой проект в CCS 4.110, воспользовался встроенными функциями для записи EEPROM. Прошил микроконтроллер с помощью PICKit2, прочитал EEPROM, убедился, что функции пишут (записать по адресу 0 значение 0x11). Открыл каталог проекта и посмотрел ассемблерный листинг встроенной функции. Что-то там побольше кода, чем у вас.
И в 2 часа ночи ответил тут...
AleksBak вне форума   Ответить с цитированием
Старый 08.07.2015, 09:07   #48
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 40
Сообщений: 901
Вес репутации: 1351/68
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Руслан Посмотреть сообщение
так в чём же дело, почему EEPROM не пишет?
помница, у меня тоже не сразу заработало. а проблема была в сбросе какихто битов ошибки
вот рабочий код на асм18:
Код:
WriteEE	movwf	EEADR
	movff	POSTINC0, EEDATA
	movlw	b'00000100'		; Setup for EEData
	movwf	EECON1
StartWrite				; Unlock and start the write .
	movlw	0x55			; Unlock
	movwf	EECON2
	movlw	0xAA
	movwf	EECON2
	bsf	EECON1, WR		; Start the write
	btfsc	EECON1, WR		; Write and wait
	 bra	$ - 2
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 08.07.2015, 11:17   #49
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 40
Сообщений: 4,731
Вес репутации: 4545/132
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от AleksBak Посмотреть сообщение
И в 2 часа ночи ответил тут...
У нас было 0:02, это на форуме время на час вперед показывает 1:02. Может форум на сервере в другом часовом поясе.
А ответил вот из-за этого сообщения. А то и правда люди ушли на другие форумы. Кто-то зюзьку кода написал, а остальные обсуждают на десятки страниц (один делает, а пятьдесят человек обсуждают, как на базарной площади, толпа шумит), все хотят быть причастными к STM32, а здесь и ответить некому.

PS: Кто-то время перевел или мне показалось, теперь оно совпадает.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 08.07.2015, 12:14   #50
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,124
Вес репутации: 2885/106
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: датчик ds18b20

Цитата:
Сообщение от Pridnya Посмотреть сообщение
...А ответил вот из-за этого сообщения./.
Вот честно скажу - когда увидел, что тут написал в 0:02 по вашему (или в 1:02 по "форумному", или в 2:02 по "нашему), то сразу так и подумал про именно то сообщение HIMMER-ы. Что вот взял "назло" подключил/проверил/сделал.
AleksBak вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
датчик ds18b20 IE14 Общетехнические вопросы 10 24.02.2012 15:30
Цифровой датчик температуры DS18B20 JimmiKorn Общетехнические вопросы 70 29.05.2011 04:45
Датчик влажности на DS18B20 Vovka Общетехнические вопросы 23 23.03.2011 19:47
DS18B20, вроде бы такой проблемы еще не обсуждали Berkytxt Общетехнические вопросы 12 08.10.2010 22:45
Проблема с DS18B20 на си Den_GF5 Вопросы начинающих 6 07.05.2010 00:36


Часовой пояс GMT +3, время: 06:48.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot