Почему бы не подать на DDRD1 - 0..?DJ_Kiridza писал(а):В таком случае подаем на PODRD1 - 1, на PODRD0 - 0 и слушаем PIND1.
Мелкие вопросы по МК и ПЛИС.
- Реклама
Может, и не сгорит, но греться будет как зверь. Я в одной из своих ранних поделок так управлял внешним транзистормEngineer_Keen писал(а): а если так и оставить, то сгорит однозначно.
До такой хитрости не сам додумался, еще раньше, когда делал программный двухнаправленный пин для I2C, подсказал Сергей Борщ из ФИДОшного тогда еще fido7.ru.embedded. Может, читает он этот форум ?
Последний раз редактировалось Jack_A Пт мар 21, 2014 12:46:24, всего редактировалось 1 раз.
Та же фигня, было. МК грелся до 80 °С, порт выжил.Jack_A писал(а):Может, и не сгорит, но греться будет как зверь.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Потому, что на самом деле таких ножек как PORTD1 - 5шт. Поочереди изменять для каждой направление порта + 1 такт для синхронизации, потом слушать, потом обратно менять направление порта + 1 такт для синхронизации. Опрос кнопок в разных частях прошивки - загонять сразу (полу)байт в порт не выйдет. Это во-первых: лишний объем кода, во вторых лишние операции, а прошивка немного критична к скорости выполнения - чем меньше "промежуточных" шагов - тем лучше.Почему бы не подать на DDRD1 - 0..?
2 Jack_A - спасибо. Мне это полезно было узнать.
мысли мысли штош вы вйотесь
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
Так попробуйте по вышеописанному, если внешнюю подтяжку можно прикрутить. Просто и безопасно для МК.
О, так мы все в онлайне ! Это уже чат получается
О, так мы все в онлайне ! Это уже чат получается
- Реклама
Извините, малоубедительно. Удачи.DJ_Kiridza писал(а):Потому, что на самом деле таких ножек как PORTD1 - 5шт. Поочереди изменять для каждой направление порта + 1 такт для синхронизации, потом слушать, потом обратно менять направление порта + 1 такт для синхронизации. Опрос кнопок в разных частях прошивки - загонять сразу (полу)байт в порт не выйдет. Это во-первых: лишний объем кода, во вторых лишние операции, а прошивка немного критична к скорости выполнения - чем меньше "промежуточных" шагов - тем лучше.
2 Jack_A да, так и попробую.
2 akl - ну, каждому своё.
2 All всем спасибо, принцип понял. Еще раз пересмотрю прошивку, а там будет видно, тем более что кнопки 99% времени не используются. Это я горожу часики на ИН-4.
2 akl - ну, каждому своё.
2 All всем спасибо, принцип понял. Еще раз пересмотрю прошивку, а там будет видно, тем более что кнопки 99% времени не используются. Это я горожу часики на ИН-4.
мысли мысли штош вы вйотесь
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
- Сообщения: 22
- Зарегистрирован: Вс сен 01, 2013 12:31:30
дорогие коты! кому не лень помогите чуть подправить прошивку для вот этой схемы http://atmega.ru/26-radioupravlenie-na- ... ega-8.html нужно чтобы команды выполнялись в реальном времени без задержок и изменить частоту кварца на 16мегагерц 
В чем великий смысл переделки на 16МГц?
Docendo discimus
- Сообщения: 22
- Зарегистрирован: Вс сен 01, 2013 12:31:30
в том что у меня есть только на 16 а радиомагазин находится в 70 километрах от моего дома
Скажите, а можно из под AVR Studio шить байтбластером STK-200/300?
Я что-то там LPT-порта не нашел...(((
Я что-то там LPT-порта не нашел...(((
От КЗ на выходе порта надо уходить. Даже если он не сгорит, этот финт ушами не пройдет даром - помехи попрут по питанию, эфир загадишь.
Всем привет! Помогите разобраться с МК и ЖК дисплеем.
В общем стекло TI8077

МК STM8L152C6T6
Хочу их скрестить. Знаю что у этого МК есть контроллер LCD.
У дисплея есть выводы COMx, где x=1,2,3. Как бы ясно, но вот в чем проблема. Каждого вывода COM по два штуки. Например, два вывода COM1 и т.д. Мне их объединить и подключить к выводу например COM0 мк? или каждый вывод COM к своему выводу COM у мк? Кстати, у данного мк я насчитал четыре вывода COM.
Дока на стекло в приложении.
В общем стекло TI8077
МК STM8L152C6T6
Хочу их скрестить. Знаю что у этого МК есть контроллер LCD.
У дисплея есть выводы COMx, где x=1,2,3. Как бы ясно, но вот в чем проблема. Каждого вывода COM по два штуки. Например, два вывода COM1 и т.д. Мне их объединить и подключить к выводу например COM0 мк? или каждый вывод COM к своему выводу COM у мк? Кстати, у данного мк я насчитал четыре вывода COM.
Дока на стекло в приложении.
- Вложения
-
- TI8077.pdf
- ЖК
- (212.81 КБ) 341 скачивание
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Спасибо за ссылку. Инфа интересная.
Еще вопросик возник. На этот раз SPI.
Настроил я SPI в режим мастера. Логический анализатор показывает что на выводе тактирования аще непонятно что творится.
Вот скрин окна анализатор. Передавал число 0х53.

Можете проверить настройки SPI? Не пойму где накосячил. Камень STM32F207
Вот функция настройки SPI.
Еще вопросик возник. На этот раз SPI.
Настроил я SPI в режим мастера. Логический анализатор показывает что на выводе тактирования аще непонятно что творится.
Вот скрин окна анализатор. Передавал число 0х53.
Можете проверить настройки SPI? Не пойму где накосячил. Камень STM32F207
Вот функция настройки SPI.
Код: Выделить всё
#define SPI1_NSS GPIO_PinSource4
#define SPI1_SCK GPIO_PinSource5
#define SPI1_MISO GPIO_PinSource6
#define SPI1_MOSI GPIO_PinSource7
#define NSS_PIN GPIO_Pin_4
#define SCK_PIN GPIO_Pin_5
#define MISO_PIN GPIO_Pin_6
#define MOSI_PIN GPIO_Pin_7
SPI_InitTypeDef SPI_InitStruct;
GPIO_InitTypeDef GPIO_InitStructure;
SPI_I2S_DeInit(SPI1);
RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd (RCC_APB2Periph_SPI1, ENABLE);
GPIO_PinAFConfig(GPIOA,SPI1_NSS,GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA,SPI1_SCK,GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA,SPI1_MISO,GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA,SPI1_MOSI,GPIO_AF_SPI1);
GPIO_InitStructure.GPIO_Pin = SCK_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = MISO_PIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = MOSI_PIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
SPI_InitStruct.SPI_Direction= SPI_Direction_2Lines_FullDuplex;
SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStruct.SPI_Mode = SPI_Mode_Master;
SPI_InitStruct.SPI_CPOL = SPI_CPOL_Low ;
SPI_InitStruct.SPI_CPHA = SPI_CPHA_1Edge;
SPI_InitStruct.SPI_NSS = SPI_NSS_Soft ;
SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_128;
SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;
SPI_InitStruct.SPI_CRCPolynomial = 7;
SPI_Init(SPI1, &SPI_InitStruct);
SPI_Cmd(SPI1, ENABLE);
SPI_NSSInternalSoftwareConfig(SPI1, SPI_NSSInternalSoft_Set);
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
Скорей всего ты сигнал не с той ноги взял.
Сча перепроверю. Как то даж не подумал об этом )Alexeyslav писал(а):Скорей всего ты сигнал не с той ноги взял.
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
Анализатором приконнектился правильно. PA5.Alexeyslav писал(а):Скорей всего ты сигнал не с той ноги взял.
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн
Попробуй методом тыка найти нужную ногу, может ошибся в подсчете ног. Еще может быть это баг библиотеки, попробуй назначить на другие выводы.
Увы, к нужной ноге подключился. Может быть в настройке что-то не учел?Alexeyslav писал(а):Попробуй методом тыка найти нужную ногу, может ошибся в подсчете ног. Еще может быть это баг библиотеки, попробуй назначить на другие выводы.
Блин, реально, перекинул всё на SPI2 и всё заработало. Странно. Блин, буду разбираться с SPI1. Интересно почему не пашет.
Спасибо!
Теория — это когда все известно, но ничего не работает. Практика — это когда все работает, но никто не знает почему. Мы же объединяем теорию и практику: ничего не работает… и никто не знает почему!
© Альберт Эйнштейн
© Альберт Эйнштейн


