Вот они...
Мелкие вопросы по МК и ПЛИС.
Re: Мелкие вопросы по МК и ПЛИС.
Ребята помогите найти даташиты - облазил уже весь гугл но ничего не нашёл ( имеются два TFT дисплея от Nokia 6101, на большом внутреннем дисплее написано SA UF13R001AA B15 MP1.0 (5 29 07 19 4850863) и на маленьком внешнем с потёртостями - СС3zz 8877 - 3T804 .5331248, никак немогу найти даташиты как ими управлять... 
Вот они...
Вот они...
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Попробуйте спросить здесь: http://www.master-electrix.at.ua/
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Прошу сильно не пинать новичка. Вопрос по части C18 для PIC'ов:
Так как Си я начал изучать только сейчас, возник вопрос по меткам.
добавим метку (функцию?) "DS18_onpoc" (как бы подпрограмма, как в ассемблере):
А вот при переходе отсюда на ещё одну подпрограмму "transfer" начанает ругаться что:
типа не может найти метку в этой же самой подпрограмме. Тоже самое если goto описать ассемблерным кодом _asm goto transfer _endasm.
Вопрос такой: что мне сделать если нужно перейти из данной подпрограммы (функции?) в другую? Из главной (main) то она переходит...
Спасибо большое за помощь.
(Ещё раз прошу не пинать - в книжках которые я почитал такого примера нигде не описывается)
Так как Си я начал изучать только сейчас, возник вопрос по меткам.
Код: Выделить всё
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) то она переходит...
Спасибо большое за помощь.
(Ещё раз прошу не пинать - в книжках которые я почитал такого примера нигде не описывается)
Re: Мелкие вопросы по МК и ПЛИС.
Непонятно, зачем такие ...извращения с меткой. Просто вызывайте другую необходимую функцию.Chettuser писал(а):Вопрос такой: что мне сделать если нужно перейти из данной подпрограммы (функции?) в другую?
Оператор goto СИ-шный, а не ассемблерный и осуществляет переход на метку только в пределах той функции, где и расположена метка и сам оператор. Может в ассемблере PIC такая команда есть? Я пользуюсь AVR и c PIC-ами не знаком.
А почему вы так думаете? И что "говорит компилятор по поводу: _asm goto DS18_onpoc _endasm;?Из главной (main) то она переходит...
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Ничего не говорит
Соглашается и переходит
А вот из "вспомогательной" функции переходить в ещё одну вспомогательную не хочет...
Просто так проще разбить программу на блоки, которые проще отлаживать отдельно. Да и больше согласуется с блок-схемами, которые я последнее время полюбил.
А вот из "вспомогательной" функции переходить в ещё одну вспомогательную не хочет...
ValBag писал(а):Непонятно, зачем такие ...извращения с меткой. Просто вызывайте другую необходимую функцию.
Просто так проще разбить программу на блоки, которые проще отлаживать отдельно. Да и больше согласуется с блок-схемами, которые я последнее время полюбил.
Последний раз редактировалось Chettuser Ср окт 13, 2010 20:30:00, всего редактировалось 1 раз.
Re: Мелкие вопросы по МК и ПЛИС.
Приложите весь код (в виде файла)Chettuser писал(а):Ничего не говоритСоглашается и переходит
![]()
А вот из "вспомогательной" функции переходить в ещё одну вспомогательную не хочет...
Так есть в ассемблере PIC команда goto ?
-
Chettuser
Re: Мелкие вопросы по МК и ПЛИС.
Не крепится что то, придётся тут.
Код сыроватый... так что ежели что...
Есть. А тут мне кажется без разницы что писать "_asm goto .... _endasm" или "goto .... ".
Код сыроватый... так что ежели что...
Код: Выделить всё
#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 .... ".
Re: Мелкие вопросы по МК и ПЛИС.
Chettuser писал(а):Попробуйте спросить здесь: http://www.master-electrix.at.ua/
Спасибо, буду дальше искать, и еще один небольшой вопросик ) недавно откопал вот такого зверька - AT49F002NT - возможно ли его прошить пятью проводами или же другим и каким способом ?
Re: Мелкие вопросы по МК и ПЛИС.
Chettuser
Непонятно как осуществляется переход по: _asm goto DS18_onpoc _endasm; Метка в СИ должна быть обозначена в строке кода так же, как и в ассемблере label: и служит в обеих случаях адресом для ветвления программы, командой безусловного goto или условного (в ассемблере) перехода. В СИ, с той оговоркой, о которой я упоминал выше.
Функции также являются модулями программы. Вызывайте из main функцию
DS18_onpoc ();
а из неё
transfer ();
А про метки забудьте, т. к. в СИ они применяются в крайних случаях. Обычно для перехода хватает других средств.
Непонятно как осуществляется переход по: _asm goto DS18_onpoc _endasm; Метка в СИ должна быть обозначена в строке кода так же, как и в ассемблере label: и служит в обеих случаях адресом для ветвления программы, командой безусловного goto или условного (в ассемблере) перехода. В СИ, с той оговоркой, о которой я упоминал выше.
Функции также являются модулями программы. Вызывайте из main функцию
DS18_onpoc ();
а из неё
transfer ();
А про метки забудьте, т. к. в СИ они применяются в крайних случаях. Обычно для перехода хватает других средств.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
Wereww писал(а):AT49F002NT - возможно ли его прошить пятью проводами или же другим и каким способом ?
Прошивают МК, а в память записывают.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- diim
- Нашел транзистор. Понюхал.
- Сообщения: 168
- Зарегистрирован: Сб фев 16, 2008 04:35:19
- Откуда: г.Тольятти
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Доброго времени суток, уважаемые коты! помогите решить проблему. значит так: в CAVR пишу код
PORTB=0b11111111;
PORTC=0b11111111;
PORTD=0b11111111;
по идее контроллер mega8 должен все порты в единички выставить, симулирую это дело в proteus , а он только PORTB присваивает единички! в чем проблема может быть?
PORTB=0b11111111;
PORTC=0b11111111;
PORTD=0b11111111;
по идее контроллер mega8 должен все порты в единички выставить, симулирую это дело в proteus , а он только PORTB присваивает единички! в чем проблема может быть?
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
diim писал(а):в чем проблема может быть?
А если вот так поменять местами?
PORTB=0b11111111;
PORTD=0b11111111;
PORTC=0b11111111;
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- diim
- Нашел транзистор. Понюхал.
- Сообщения: 168
- Зарегистрирован: Сб фев 16, 2008 04:35:19
- Откуда: г.Тольятти
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Gudd-Head писал(а):diim писал(а):в чем проблема может быть?
А если вот так поменять местами?
а какая разница??? те-же яйца только вид с боку!
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
Re: Мелкие вопросы по МК и ПЛИС.
А что в регистрах DDRC, DDRD ?diim писал(а):в чем проблема может быть?
- diim
- Нашел транзистор. Понюхал.
- Сообщения: 168
- Зарегистрирован: Сб фев 16, 2008 04:35:19
- Откуда: г.Тольятти
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
ValBag писал(а):А что в регистрах DDRC, DDRD ?diim писал(а):в чем проблема может быть?
они настроены на выход!
вот листинг:
// 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;
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
Re: Мелкие вопросы по МК и ПЛИС.
Посмотрите в AvrStudio, может это глюк Proteus?diim писал(а):они настроены на выход!
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
Код: Выделить всё
DDRB=0x00;Это немного (совсем чуть-чуть, самую малость) не сходится с тем, что вы писали раньше:
diim писал(а):PORTB=0b11111111;
PORTC=0b11111111;
PORTD=0b11111111;
diim писал(а):только PORTB присваивает единички!
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Мелкие вопросы по МК и ПЛИС.
Gudd-Head писал(а): Это немного (совсем чуть-чуть, самую малость) не сходится с тем, что вы писали раньше
На самом деле протеус в этом случае все равно отобразит на выходах единицу (порт на вход, подтяжка включена), если только его на землю не коротнуть. Другое дело почему на остальных портах единиц нету. В общем если уж выкладывать код, так целиком, можно и со схемой.
- diim
- Нашел транзистор. Понюхал.
- Сообщения: 168
- Зарегистрирован: Сб фев 16, 2008 04:35:19
- Откуда: г.Тольятти
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
прошу у всех прощения! я нашёл причину! оказывается я по запарке стёр закрывающую и открывающую фигурную скобку главного цикла программы while {}; вот и получился сумбур!
спасибо, что откликнулись!
спасибо, что откликнулись!
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
Не трогайте мокрыми руками оголённые провода, они могут заржаветь.
***********
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
diim писал(а):стёр закрывающую и открывающую фигурную скобку главного цикла программы while {};
ППЦ. На АСМе так не получится)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]