Отговори на тема  [ 21 мнения ]  Отиди на страница 1, 2  Следваща
12F683 не изработва 1 едновременно на два порта. 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Яну 03, 2007 8:52 pm
Мнения: 89
Местоположение: Димитровград
Мнение 12F683 не изработва 1 едновременно на два порта.
Задействам две релета когато напрежението измерено от ацепето мине определена стойност. Релетата се намират на GP1 и GP2, като транзистора е bc639 и между базата и пика съм сложил 1,5к резистор. Проблема е в това че пика не изработва едновременно 1 на двата изхода. Поотделно си работят но заедно винаги GP1 е 0. От какво може да е?
Това е софта:

while(1)
{
acp();

if (volt >= 4250)
{
GP1=1;
GP2=1; //като изтрия този ред работи GP1

}
else{GP1=0;}
}


Последна промяна kirchi на Сря Мар 30, 2011 7:28 pm, променена общо 1 път



Вто Мар 29, 2011 9:58 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Мар 08, 2006 2:12 pm
Мнения: 2017
Местоположение: Котел
Мнение 
А защо не ги установяваш двете едновременно? Това с какъв компилатор?


Вто Мар 29, 2011 10:14 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Яну 03, 2007 8:52 pm
Мнения: 89
Местоположение: Димитровград
Мнение 
На htsoft 9.81


Вто Мар 29, 2011 10:23 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение 
А това 12F628 от къде го измисли? Най-близкото до него е 12F629, но е без АЦП. С АЦП е 12F675. А проблема ти ми прилича на неизключени компаратори към входовете. Доста гадаене е така... :(


Вто Мар 29, 2011 11:08 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение 
Проблема само с GP1 ли е или с този, който пръв се сетва? Опитай да сетнеш първо GP2 и после GP1 и виж дали проблема няма да се прехвърли на GP2.


Вто Мар 29, 2011 11:27 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Май 29, 2007 2:23 pm
Мнения: 3714
Местоположение: Високо в планината
Мнение 
Ако правилно си конфигурирал пиновете, проблемът може да идва от "read-modify-write".
По това има изписано много, вкл. и тук.
Пробвай да използваш т.нар. засенчващ регистър- вместо да записваш данните директно в PORTx, запиши ги първо в някой регистър (променлива) SHADOW и после го копирай в PORTx.

например:
Код:
BSF SHADOW,3
BSF SHADOW,7
MOVFW SHADOW
MOWVF PORTA

вместо просто
Код:
BSF PORTA,3
BSF PORTA, 7

_________________
Хайде де!


Сря Мар 30, 2011 9:16 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
По-правилно е да се прави с ANDWF/IORWF за да не се променя случайно състоянието на някой друг бит. Ама това само принципно. А ако ги сетваш BSF(BCF) те така или иначе не се включват "едновременно" а един след друг. А това за read-modify-write в случая няма нищо общо.

Ако наистина става въпрос 12f629 - той има само компаратор. И баш тези (GP0 - 2) са му пиновете. Компаратора е включен по дефолт.


Сря Мар 30, 2011 11:18 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Яну 19, 2007 9:16 am
Мнения: 1063
Местоположение: путинофили: "иди н***й"
Мнение 
какво толкова му им се чудите и маете на тия пикове !?

явно и двата пина са на един порт и компилатора приема CP1=1 за байтова а не битова операция
(да беше погледнал асемблерския листиг ли !?)


Сря Мар 30, 2011 11:43 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Нед Апр 17, 2005 9:23 am
Мнения: 112
Мнение 
На мен пък ми прилича точно на RMW-проблем.
Пробвай съвета на CarBeta и ако проблемът се прехвърли на GP2, значи трябва да използваш решението, дадено от dan.


Сря Мар 30, 2011 11:52 am
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение 
Цитат:
акво толкова му им се чудите и маете на тия пикове !?

явно и двата пина са на един порт и компилатора приема CP1=1 за байтова а не битова операция
(да беше погледнал асемблерския листиг ли !?)

Тука не позна изобщо! :) Тука GP1(а не CP1) и GP2 са предварително дефинирани битове... и т.н. :)


Сря Мар 30, 2011 11:57 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Яну 19, 2007 9:16 am
Мнения: 1063
Местоположение: путинофили: "иди н***й"
Мнение 
fan написа:
Цитат:
акво толкова му им се чудите и маете на тия пикове !?

явно и двата пина са на един порт и компилатора приема CP1=1 за байтова а не битова операция
(да беше погледнал асемблерския листиг ли !?)

Тука не позна изобщо! :) Тука GP1(а не CP1) и GP2 са предварително дефинирани битове... и т.н. :)


не съм се и опитвал да гадая ... още по-малко ме интересува дели е GP или CP :)

ако питащия имаше поне малко мозък - щеше да види какво е генерирал компилатора ... и щеше да го постне (ако не може да го проумее).

в последно време форуна се напълни с малоумни питания ... явно е тенденция и ще трябва да се свиква :)


Сря Мар 30, 2011 12:37 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Окт 13, 2007 12:12 pm
Мнения: 712
Мнение 
Прав си, много си прав! :(


Сря Мар 30, 2011 12:42 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 17, 2005 5:07 pm
Мнения: 813
Местоположение: Сливен
Мнение 
Според мен не се е напълнил с глупави питания а с умни отговори .
Просто забравихме от де тръгнахме и ние .... изровете си постове от преди 3 години да видите къв смях ще падне.
Няма смисъл да се избиват комплекси .. питащия попита дадоха му се насоки ... и той млъкна... просто оставяме темата да потъне и това е.. а не както се прави напоследък да се обърне на говорилня от типа НЕЩО vs ДРУГО НЕЩО


Сря Мар 30, 2011 4:43 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Сря Яну 03, 2007 8:52 pm
Мнения: 89
Местоположение: Димитровград
Мнение 
Опа процесора е 12f683, не знам защо съм написал 628. Проблема винаги е на GP1 каквото и да въртя и да сменям. Написах
GP1=1;
delay_s(1);
GP2=1;

и в момента GP2=1 на GP1 измервам 0,23V.

В асемблерския листиг всичко си е ок. Пробвах с real pic simulator и си баца. Може ли пика да е изтрищял?


Сря Мар 30, 2011 7:16 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение 
Би ли пуснал асемблерския листинг или направо хекса(ако, разбира се, не са строго секретни)?


Сря Мар 30, 2011 7:37 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 21 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 5 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни