Свежие обсуждения
Микроконтроллеры

Цифровой термометр на МК и LCD nokia 3310

1 8 17

SHIP, SH-I-I-I-P, SHE-E-E-P, B-E-E(

 

Чего? А, Оксфорд...
Исправляюсь: CHIP, CHI-I-IP!

 

Оксфорд тут абсолютно ни при чём. Спокойно могла быть Уфа или, скажем, Серпухов.

А если чуток посерьёзнее, то не будем забывать, что "компьютер многократно увеличивает некомпетентность пользователя"(С).

 

Уфа бы промолчала, откуда в Уфе такой тонкий английский юмор?

 

Разумеется, неоткуда(

Зато она спрашивает про АТ76С713, не мега ли это, хотя никто ее так не называл. Нет бы сразу посмотреть в даташит.

 

GM: спрашивает про АТ76С713, не мега ли это, хотя никто ее так не называл

Да-да, я заметил как Оксфорд тщательно избегал слова "мега", описывая этот контроллер
Ладно, давайте не будем здесь оттачивать искусство пикировки?

 

AHTOXA: Это SHIP SELECT, выбор кристалла. Когда на SPI висит несколько устройств, он нужен. Выбирает устройство, с которым в данный момент производится обмен. Активный уровень - низкий.
Понял, спасибо.

GM: А если чуток посерьёзнее, то не будем забывать, что "компьютер многократно увеличивает некомпетентность пользователя"(С).
Старо как мир, пока не переведутся новички, их непременно будут опускать. Этакая радиолюбиетльская дедовщина. Я вообще-то открывал эту тему для того чтоб люди знающие подсказывали непонятные моменты незнающему, т.е. мне. В программировании я не новичок, но только давно это было, лет 15 назад, да ия зык был Qbasic. СИ вообще начал ТОЛЬКО изучать с упором на МК. Надоело повторять чужие конструкции, хочется свое что-то.

Вопрос к корифеям, включая АТНОХУ, (ибо это с его кода). конкретно меня интерисует самое начало.
#define NOKIA_SCK B, 2, H // (нога 2 на дисплее) . Вот это и непонятно, что дальше идет после объявления переменной? Что означает B, 2, H?

Да еще куча подпрограм прилагается, я понимаю, что это наработки облегчающие программирование. Подключил - и пользуйся. Но мне как новичку это как раз и сложно пока гонять по всем листингам выиискивая алгоритм работы.

 

Повторюсь. Задача для первого урока у меня такая. Подключить правильно LCD к МК. Правильно подключить в программе все нужные библиотеки через #include. Я пока подключил nokia3310.h и tiny2313.h. Затем нужно задать переменные и команды управления ЖК. Затем правильно его инициализировать. Я прочел, что надо сразу после вкл, выставлять 0 на выводе RST LCD. Иначе полетит индикатор. И последнее, надо вывести 1 строчку хотя бы на экран.
Алгоритм правильный?
Хотелось бы это сделать пока как первокласнику, все в одной странице кода, без подключения дополнительных кодов как у АНТОХИ

 

serg_svd: #define NOKIA_SCK B, 2, H // (нога 2 на дисплее)

Это порт B2, активный уровень - высокий (H). Удобные макросы, Я ими всё время пользуюсь.
После такого объявления пишем
direct(NOKIA_SCK, O); // нога на вывод
или
direct(NOKIA_SCK, I); // нога на ввод

Потом
on(NOKIA_SCK) - включение ноги в активное состояние (в данном случае высокий)
off(NOKIA_SCK) - выключение ноги.

или
if (signal(NOKIA_SCK)) - проверка состояния.

Если не нравится, пиши как обычно,
DDRB |= (1<<2); // нога 2 порта B на выход

PORTB |= (1<<2); // нога 2 порта B в 1
PORTB &= ~(1<<2); // нога 2 порта B в 0

Что касается минимального примера, так это он и есть Просто работа с дисплеем вынесена в модуль nokia310, а работа с таймером - в timer.

Лишнего там ничего нет.

Впрочем, ладно, постараюсь на днях изобразить в одном файле.

 

AHTOXA: Это порт B2, активный уровень - высокий (H). Удобные макросы, Я ими всё время пользуюсь.
Прочитал, сравнил. Действительно удобней и понятней. Только где об этих макросах почитать можно?
А единая прога - это не мой каприз. Просто я знаю, что вы написали прогу с точки зрения программиста, правильно и рационально. Всегда удобно иметь готовые подпрограммы и применять их когда необходимо.
Просто мне как начинаещему в разбросаном листинге разобраться сложновато.