Отговори на тема  [ 21 мнения ]  Отиди на страница 1, 2  Следваща
Проблем с PIC12F1840 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Май 12, 2014 11:49 pm
Мнения: 4394
Местоположение: София
Мнение Проблем с PIC12F1840
Здравейте приятели!

Начинаещ съм в програмирането на микроконтролери, но до момента все някак се справях. Натъкнах се на непонятен за мен проблем с PIC12F1840 и XC8 компилатор. Проблемът се състои в това, че не мога да накарам да се "запалят" повече от един изхода едновременно.

Пример:


#include<pic.h>
#include<pic12f1840.h>
#pragma config WDTE=OFF
#pragma config LVP=OFF

unsigned int i;
void pause_1();


void main()
{

OSCCON = 0B10111010; //int osc - 1Mhz
TRISA = 0B00000011; //RA1 ; RA0 inputs

RA4=1;
pause_1();
RA4=0;
pause_1();

}


void pause_1()
{

for(i=0; i<5000; i++);
}


В този случай RA4 си се пали и гаси, както трябва.

Ако сменя RA4 с RA2, RA2 също си се пали и гаси.

Но ако искам и двата порта да се палят едновременно:

void main()
{

OSCCON = 0B10111010; //int osc - 1Mhz
TRISA = 0B00000011; //RA1 ; RA0 inputs

RA4=1;
RA2=1;
pause_1();
RA4=0;
RA2=0;
pause_1();

}

работи само RA2

Моля за вашата помощ относно това, как да накарам повече от 1 порт да се управляват едновременно.


Сря Апр 15, 2015 1:38 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение Re: Проблем с PIC12F1840
Изглежда почти работещо .. ако изключим факта че има изход от програмката ти.
Я пробвай така
Код:

#include <xc.h>
#pragma config .....

void pause_1()
{

for(i=0; i<5000; i++);
}

void main()
{

OSCCON = 0B10111010; //int osc - 1Mhz
TRISA = 0B00000011; //RA1 ; RA0 inputs

  while (1)
  {
    RA4=1;
    RA2=1;
    pause_1();
    RA4=0;
    RA2=0;
    pause_1();
  }
}


Сря Апр 15, 2015 2:03 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Май 12, 2014 11:49 pm
Мнения: 4394
Местоположение: София
Мнение Re: Проблем с PIC12F1840
michev написа:
Изглежда почти работещо .. ако изключим факта че има изход от програмката ти.
Я пробвай така ........


Пак работи само RA2 :(


Сря Апр 15, 2015 3:45 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 02, 2008 10:24 pm
Мнения: 105
Мнение Re: Проблем с PIC12F1840
LATA4=1;
LATA2=1;

http://www.mikroe.com/download/eng/docu ... lp/rmw.htm


Сря Апр 15, 2015 4:08 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Май 12, 2014 11:49 pm
Мнения: 4394
Местоположение: София
Мнение Re: Проблем с PIC12F1840



Така всичко е "ток и жица" :)

Много ти благодаря!

Жив и здрав да си!


Сря Апр 15, 2015 4:43 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Проблем с PIC12F1840
Ти верно ли настъпа тая мотика? Този ефект съм го постигал чак при 64MHz на 18F4622. При 4-8MHz не би трябвало да го прави.


Сря Апр 15, 2015 9:18 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Май 12, 2014 11:49 pm
Мнения: 4394
Местоположение: София
Мнение Re: Проблем с PIC12F1840
Cekins написа:
Ти верно ли настъпа тая мотика? Този ефект съм го постигал чак при 64MHz на 18F4622. При 4-8MHz не би трябвало да го прави.


Да бе - то такива работи на такива прощапулници, като мен се случват - за да се сблъскат с трудности, та да се понаучат :)

Какво ли не ми мина през акъла - като се започне от някаква настройка, ограничаваща консумацията, някакъв приоритет на портове, та до дефектен чип. Преобърнах няколко пъти дейта-шита, мернах нещо за LATA регистър, ама кой да се сети да пробва. След това експериментално едно по едно изключих останалите предположения, търсих и в мрежата по въпроса и накрая реших да питам тук.

....И за пореден път се убедих в това, че форумът е голяма работа :)


Сря Апр 15, 2015 11:46 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение Re: Проблем с PIC12F1840
Cekins написа:
Ти верно ли настъпа тая мотика? Този ефект съм го постигал чак при 64MHz на 18F4622. При 4-8MHz не би трябвало да го прави.
За какъв ефект става въпрос?


Чет Апр 16, 2015 12:29 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Проблем с PIC12F1840
Физически пина да не се сетне за времето между две инструкции. В линка дето е даден е обяснено с картинки. Не че е невъзможно ама бая капацитет трябва за да се случи - нещо от порядъка на над 500pF - 1nF. Капацитета на пиновете по спомен беше нещо като 10-15pF. Освен ако няма закачен някой корав мосвет директно на тоя пин, друго какво може да го натовари така? Та на мен ми се е случвало ама чак при 64MHz и да има достатъчно голям капацитет на пина, че да не може да стигне 3 волта до следващата инструкция.


Чет Апр 16, 2015 2:54 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Май 12, 2014 11:49 pm
Мнения: 4394
Местоположение: София
Мнение Re: Проблем с PIC12F1840
Обяснението от линка го разбрах, но не разбрах, защо примерно при 16F84 или 16F88 този ефект го няма. Или поне аз не съм го забелязал.
А и обяснението с капацитивния характер на товара - ОК но в случая с 12F1840 с чисто активен товар и то далеч от товароспособността на изхода (1 mA) пак се проявява мизерията. :(


Чет Апр 16, 2015 8:35 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Проблем с PIC12F1840
При всички пикове го има (за 16 и 32 битовите не съм сигурен). Вече казах при какви условия лично аз съм го виждал това. Имам усещането, че при теб проблема е друг. Пусни .asm файла с неработещата програма да видим какво дъвче компилатора, щото проблема може и от там да е.


Чет Апр 16, 2015 9:25 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Май 12, 2014 11:49 pm
Мнения: 4394
Местоположение: София
Мнение Re: Проблем с PIC12F1840
Cekins написа:
При всички пикове го има (за 16 и 32 битовите не съм сигурен). Вече казах при какви условия лично аз съм го виждал това. Имам усещането, че при теб проблема е друг. Пусни .asm файла с неработещата програма да видим какво дъвче компилатора, щото проблема може и от там да е.


Прикачени файлове:
1840_test.X.production.txt [21.82 KiB]
299 пъти
Пет Апр 17, 2015 10:34 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Проблем с PIC12F1840
Хм. Нормално си е. Явно наистина си настъпал мотиката :)


Пет Апр 17, 2015 11:52 am
Профил ICQ
Ранг: Напреднал
Ранг: Напреднал
Аватар

Регистриран на: Пет Фев 14, 2014 4:45 pm
Мнения: 439
Местоположение: Монтана
Мнение Re: Проблем с PIC12F1840
lcr написа:
... В този случай RA4 си се пали и гаси, както трябва.
Ако сменя RA4 с RA2, RA2 също си се пали и гаси.
Но ако искам и двата порта да се палят едновременно: ...
... работи само RA2


На мен нещо ми убягва. Как с промяна в програмата ще се променя капацитета на периферията?

_________________
Не карай по-бързо от своя ангел-пазител!


Пет Апр 17, 2015 12:46 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Май 12, 2014 11:49 pm
Мнения: 4394
Местоположение: София
Мнение Re: Проблем с PIC12F1840
Обяснението с капацитивния товар вероятно не касае този случай. А и примерно със 16F88 и с RC товар на изход, на границата на товароносимостта му, такъв проблем не съм имал.

Явно е това с мотиката :)

По-важното е това, че решението на мизерията е ясно.


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

Кой е на линия

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


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

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