|
|
  |
Счетчик импульсов с выводом на 7-ми сегментный индикатор, Помогите, пожалуйста, создать схему |
|
|
|
Dec 9 2011, 05:23
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585

|
Понял! У ATtiny26 есть два порта ввода-вывода данных, которые подключеня к своим 8-ми ножкам микросхемы, от меня требуется найти соответствее сегментов индикатора ножкам МК. Эта программа на 2 цыфры (только не пойму, где в коде ее это указано), а чтоб добавить еще один розряд индикации, что мне и куда нужно дописать?
|
|
|
|
|
Dec 9 2011, 10:33
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585

|
я понимаю, что такое динамическая индикация. мне не понятно где указано, чтоб МК зажигал сначала первую цыфру, потом ее тушил и включал вторую, массу подключал к индикатору, чтоли
|
|
|
|
|
Dec 9 2011, 11:14
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(shadow86 @ Dec 9 2011, 14:33)  я понимаю, что такое динамическая индикация. мне не понятно где указано, чтоб МК зажигал сначала первую цыфру, потом ее тушил и включал вторую, массу подключал к индикатору, чтоли ну так если индикация динамическая, рулит этим таймер, значит где? Правильно, в обработчике прерывания таймера Код __interrupt void Timer0_Ovf(void) на выходы ставятся NPN коллектором на общий катод и эмиттером на землю
|
|
|
|
|
Dec 11 2011, 22:13
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585

|
так и не смог понять ((. скиньте пожалуйста текст программы для управления 3 знаковым 7-ми сегментным индикатором. Если это военная тайна, то скажите хотябы, как заставить МК переключаться между цыфрами? Высказывание: Цитата __interrupt void Timer0_Ovf(void) - мне ниочем не сказало (((
|
|
|
|
|
Dec 12 2011, 08:31
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585

|
Это хороший совет - учить С, но как-то плохо он мне дается после Паскаля, тут одно и то же можно написать 10 способами, при этом одно на другое аж никак не похоже будет. Нахожу примеры похожие между собой по функционалу, а написанное совсем разное ((. Как то не по-людски в нём все! Ладно, верю, что разгадка где-то рядом. О! Объясните, пожалуйста, русским языком: DDRA = 0xFF; PORTA = 0; я понимаю, что написанное активизирует порт А для вывода, тоесть все его ножки работают как выходы, а как Вы бы написали если бы захотели например 2 ножки сделать выходами, 2 входами, потом еще 3 выходами и 1 входом, или так нельзя поступать с выходами одного порта?
|
|
|
|
|
Dec 12 2011, 09:08
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(shadow86 @ Dec 12 2011, 12:31)  или так нельзя поступать с выходами одного порта? документацию на контроллер в руки и читать  Цитата(shadow86 @ Dec 12 2011, 12:31)  Это хороший совет - учить С, но как-то плохо он мне дается после Паскаля нужно. Под контроллеры все пишется на С Цитата(shadow86 @ Dec 12 2011, 12:31)  О! Объясните, пожалуйста, русским языком: DDRA = 0xFF; PORTA = 0; я понимаю, что написанное активизирует порт А для вывода, тоесть все его ножки работают как выходы, а как Вы бы написали если бы захотели например 2 ножки сделать выходами, 2 входами, потом еще 3 выходами и 1 входом, очень просто. Нужно соответствующие биты выставить в 1 DDRA = 0x80 | 0x40 | 0x0E; В результате компилятор вычислит значение 0xCE и подставит в выражение. В двоичном виде это будет (11001110), что и требовалось. Но так неудобочитаемо Лучше будет объявить значения битов (все равно где-то понадобится) bits.h Код #ifndef __BITS_H__ #define __BITS_H__ #define BIT0 0x01 #define BIT1 0x02 #define BIT2 0x03 #define BIT3 0x04 #define BIT4 0x10 #define BIT5 0x20 #define BIT6 0x40 #define BIT7 0x80 #endif а потом просто подключать эти объявления где нужно: Код #include "bits.h"
DDRA = BIT7 | BIT6 | BIT3 | BIT2 | BIT1;
|
|
|
|
|
Dec 12 2011, 19:25
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585

|
пожалуй, Ваш русский я тоже не понимаю ((. Объясните как полному идиоту: откуда мне взять эти Цитата соответствующие биты , чтоб Цитата выставить в 1 . Теперь совсем совсем запутался.. эти биты - это адреса ножек микросхемы? которые мне нужно сделать выводами данных..?
|
|
|
|
|
Dec 13 2011, 14:05
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585

|
использовал мозговой штурм и разобрался немного с битами. прошу прощения за тупорылые вопросы.. запись Цитата #include "bits.h" DDRA = BIT7 | BIT6 | BIT3 | BIT2 | BIT1; включает нужные мне ножки как выходы, а остальные ножки порта автоматически будут входами? мне этого нигде объявлять не нужно? или нужно написать: "bits.h" DDRA = BIT7 | BIT6 | BIT3 | BIT2 | BIT1; PINA = BIT5 | BIT4 | BIT0;
|
|
|
|
|
Dec 14 2011, 15:47
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585

|
подскажите, пожалуйста, в каком виде эта запись 0x0C как ее понимать, переводить в десятичную или хотябы двоичную форму?
|
|
|
|
|
Dec 14 2011, 19:07
|
Участник

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585

|
Спасибо большое! Двигаюсь дальше..
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|