Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Wereww
Встал на лапы
Сообщения: 129
Зарегистрирован: Пн окт 04, 2010 17:58:31

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Wereww »

Ребята помогите найти даташиты - облазил уже весь гугл но ничего не нашёл ( имеются два TFT дисплея от Nokia 6101, на большом внутреннем дисплее написано SA UF13R001AA B15 MP1.0 (5 29 07 19 4850863) и на маленьком внешнем с потёртостями - СС3zz 8877 - 3T804 .5331248, никак немогу найти даташиты как ими управлять... :(

Вот они...
TFTBIG.jpg
Большой
(197.92 КБ) 400 скачиваний

TFTSMALL.jpg
Маленький
(194.42 КБ) 350 скачиваний
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Прошу сильно не пинать новичка. Вопрос по части C18 для PIC'ов:
Так как Си я начал изучать только сейчас, возник вопрос по меткам.

Код: Выделить всё

void main (void)
{
    ADCON0 = 0;        // цифровые выходы
    TRISC = 0;        /* PORTС на выход */
    PORTC = 0;
    counter = 0;

while (1)
{
    _asm goto DS18_onpoc _endasm;
}
}

добавим метку (функцию?) "DS18_onpoc" (как бы подпрограмма, как в ассемблере):

Код: Выделить всё

void DS18_onpoc (void)
{
    PORTCbits.RC2=0;
    Delay10KTCYx(0.5/(freq*(250e-9)*10000));    //сигнал обнуления датчика ~500мкс
    PORTCbits.RC2=1;
    Delay10TCYx(10);        //ждём паузу ~100мкс
    DS = 0xCC;
    goto transfer;

А вот при переходе отсюда на ещё одну подпрограмму "transfer" начанает ругаться что:

Код: Выделить всё

Error [1111] undefined label 'transfer' in 'DS18_onpoc'

типа не может найти метку в этой же самой подпрограмме. Тоже самое если goto описать ассемблерным кодом _asm goto transfer _endasm.
Вопрос такой: что мне сделать если нужно перейти из данной подпрограммы (функции?) в другую? Из главной (main) то она переходит... :cry:
Спасибо большое за помощь.
(Ещё раз прошу не пинать - в книжках которые я почитал такого примера нигде не описывается)
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ValBag »

Chettuser писал(а):Вопрос такой: что мне сделать если нужно перейти из данной подпрограммы (функции?) в другую?
Непонятно, зачем такие ...извращения с меткой. Просто вызывайте другую необходимую функцию.
Оператор goto СИ-шный, а не ассемблерный и осуществляет переход на метку только в пределах той функции, где и расположена метка и сам оператор. Может в ассемблере PIC такая команда есть? Я пользуюсь AVR и c PIC-ами не знаком.
Из главной (main) то она переходит...
А почему вы так думаете? И что "говорит компилятор по поводу: _asm goto DS18_onpoc _endasm;?
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Ничего не говорит :))) Соглашается и переходит :)))
А вот из "вспомогательной" функции переходить в ещё одну вспомогательную не хочет...
ValBag писал(а):Непонятно, зачем такие ...извращения с меткой. Просто вызывайте другую необходимую функцию.

Просто так проще разбить программу на блоки, которые проще отлаживать отдельно. Да и больше согласуется с блок-схемами, которые я последнее время полюбил. :)))
Последний раз редактировалось Chettuser Ср окт 13, 2010 20:30:00, всего редактировалось 1 раз.
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ValBag »

Chettuser писал(а):Ничего не говорит :))) Соглашается и переходит :)))
А вот из "вспомогательной" функции переходить в ещё одну вспомогательную не хочет...
Приложите весь код (в виде файла)
Так есть в ассемблере PIC команда goto ?
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Не крепится что то, придётся тут.
Код сыроватый... так что ежели что... :oops:

Код: Выделить всё

#include <p18cxxx.h>
#include <delays.h>


#pragma config LVP = ON

const int freq=4;        //опишем частоту осциллятора
int counter,DS;

void DS18_onpoc (void)
{
    PORTCbits.RC2=0;
    Delay10KTCYx(0.5/(freq*(250e-9)*10000));    //сигнал обнуления датчика ~500мкс
    PORTCbits.RC2=1;
    Delay10TCYx(8);        //ждём паузу ~100мкс
    DS = 0xCC;
    _asm goto transfer _endasm;
}

void transfer (void)   
{
return;
}       

/*reception:
{
return;
}
   
//    _asm goto v_ds18(void) _endasm; //переходим к отправке DS в DS18
    return;
}*/

void main (void)
{
    ADCON0 = 0;        // цифровые выходы
    TRISC = 0;        /* PORTB на выход */
    PORTC = 0;
    counter = 0;

while (1)
{
    _asm goto DS18_onpoc _endasm;
    PORTC=1;
}
}

ValBag писал(а):Так есть в ассемблере PIC команда goto ?

Есть. А тут мне кажется без разницы что писать "_asm goto .... _endasm" или "goto .... ".
Аватара пользователя
Wereww
Встал на лапы
Сообщения: 129
Зарегистрирован: Пн окт 04, 2010 17:58:31

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Wereww »

Chettuser писал(а):Попробуйте спросить здесь: http://www.master-electrix.at.ua/


Спасибо, буду дальше искать, и еще один небольшой вопросик ) недавно откопал вот такого зверька - AT49F002NT - возможно ли его прошить пятью проводами или же другим и каким способом ? :)
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ValBag »

Chettuser
Непонятно как осуществляется переход по: _asm goto DS18_onpoc _endasm; Метка в СИ должна быть обозначена в строке кода так же, как и в ассемблере label: и служит в обеих случаях адресом для ветвления программы, командой безусловного goto или условного (в ассемблере) перехода. В СИ, с той оговоркой, о которой я упоминал выше.
Функции также являются модулями программы. Вызывайте из main функцию
DS18_onpoc ();
а из неё
transfer ();
А про метки забудьте, т. к. в СИ они применяются в крайних случаях. Обычно для перехода хватает других средств.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

Wereww писал(а):AT49F002NT - возможно ли его прошить пятью проводами или же другим и каким способом ? :)

Прошивают МК, а в память записывают.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
diim
Нашел транзистор. Понюхал.
Сообщения: 168
Зарегистрирован: Сб фев 16, 2008 04:35:19
Откуда: г.Тольятти
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение diim »

Доброго времени суток, уважаемые коты! помогите решить проблему. значит так: в CAVR пишу код

PORTB=0b11111111;
PORTC=0b11111111;
PORTD=0b11111111;

по идее контроллер mega8 должен все порты в единички выставить, симулирую это дело в proteus , а он только PORTB присваивает единички! в чем проблема может быть?
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

diim писал(а):в чем проблема может быть?

А если вот так поменять местами?
PORTB=0b11111111;
PORTD=0b11111111;
PORTC=0b11111111;
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
diim
Нашел транзистор. Понюхал.
Сообщения: 168
Зарегистрирован: Сб фев 16, 2008 04:35:19
Откуда: г.Тольятти
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение diim »

Gudd-Head писал(а):
diim писал(а):в чем проблема может быть?

А если вот так поменять местами?

а какая разница??? те-же яйца только вид с боку!
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ValBag »

diim писал(а):в чем проблема может быть?
А что в регистрах DDRC, DDRD ?
Аватара пользователя
diim
Нашел транзистор. Понюхал.
Сообщения: 168
Зарегистрирован: Сб фев 16, 2008 04:35:19
Откуда: г.Тольятти
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение diim »

ValBag писал(а):
diim писал(а):в чем проблема может быть?
А что в регистрах DDRC, DDRD ?

они настроены на выход!
вот листинг:

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x00;
DDRC=0x7F;

// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ValBag »

diim писал(а):они настроены на выход!
Посмотрите в AvrStudio, может это глюк Proteus?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

Код: Выделить всё

DDRB=0x00;

Это немного (совсем чуть-чуть, самую малость) не сходится с тем, что вы писали раньше:
diim писал(а):PORTB=0b11111111;
PORTC=0b11111111;
PORTD=0b11111111;

diim писал(а):только PORTB присваивает единички!
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Engineer_Keen »

Gudd-Head писал(а): Это немного (совсем чуть-чуть, самую малость) не сходится с тем, что вы писали раньше


На самом деле протеус в этом случае все равно отобразит на выходах единицу (порт на вход, подтяжка включена), если только его на землю не коротнуть. Другое дело почему на остальных портах единиц нету. В общем если уж выкладывать код, так целиком, можно и со схемой.
Аватара пользователя
diim
Нашел транзистор. Понюхал.
Сообщения: 168
Зарегистрирован: Сб фев 16, 2008 04:35:19
Откуда: г.Тольятти
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение diim »

прошу у всех прощения! я нашёл причину! оказывается я по запарке стёр закрывающую и открывающую фигурную скобку главного цикла программы while {}; вот и получился сумбур!
спасибо, что откликнулись!
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

diim писал(а):стёр закрывающую и открывающую фигурную скобку главного цикла программы while {};

ППЦ. На АСМе так не получится)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

Вернуться в «Разные вопросы по МК»