almazkazan писал(а):но я обязательно попробую! я клей токопроводящий купил вот - чтоб проводки приклеить к выводам от дисплея часов. а потом изучу (методом тыка), то как там сигменты высвечивать.

Сергей писал(а):А в чем заключаеца проблема? Интеренет есть, гугл есть, можно тупо найти нужный исходник или МОРЕ курсов по АВР где все разжевано как раз для тебя


almazkazan писал(а): хотелось бы на Си - попроще, без шимов, юартов и т.д.
almazkazan писал(а):что делать если кнопок 5 ?

avr123.nm.ru писал(а):almazkazan писал(а):что делать если кнопок 5 ?
В программе периодически опрашивать регистр PIN-порта к которому подключены кнопки и при изменении считать что с кнопкой что-то сделали
 сделал вот так:
  сделал вот так:
#include <avr/io.h> //Заголовочный файл ввода-вывода
#include <util/delay.h> // А это файлик для формирования задержек
#define F_CPU 8000000UL //Сообщаем какая тактовая частота будет, в Герцах
int main (void){                   //главная функция, с которой начинает работать программа
unsigned int leds[9] = {        //создаём массив со значениями куда подавать единичку))))
0b00000000,                       //начинаем с нуля, иначе первый светодиод при переполнении счётчика гореть не будет
0b00000001,                      //Первый светодиод 1, остальные 0
0b00000010,                      //Второй светодиод 1, остальные 0, и т.д.
0b00000100,
0b00001000,
0b00010000,
0b00100000,
0b01000000,
0b10000000};
DDRD = 0xff;                        // конфигурируем пины порта D как выходы
unsigned short i;               // Переменная - счётчик, будем указывать в качестве индекса массива
// Теперь самая тема:
for(i=0; i  < 9;  i++){        //Тут я намутил)))) т.е. перечисление у нас будет с 0 до 8, т.е. все 8 элементов будут перечислены
PORTD = leds[i];              //теперь за каждый оборот цикла будет мигать следующий светодиод
_delay_ms(250);               // Задержка 250 милисекунд
if(i==8){                             /*Когда счётчик 8 равен. тогда обнуляем его, при этом по неизвестной мне причине первый элемент массива - точнее 0b00000000,   пропускается */
i=0;
}
}
}
#include <avr/io.h>
int main(void){
DDRD = 0xff;
DDRB = 0x00;
unsigned short i = 0;
while(1){
if(bit_is_clear(PINB,0){
switch (i){
case 0: PORTD = 0b01010101; i=1;
case 1: PORTD = 0b10000001; i=2;
.....................дальше варианты любые можна делать....................
case 4: PORTD = 0b00001010; break;
}
}
}
}
 Simple.zip
 Simple.zip


 весело это всё, блин. а что дальше посоветуете попробывать сделать новичку?
  весело это всё, блин. а что дальше посоветуете попробывать сделать новичку?  читал теорию.  но в теории нету схемы подсоединения, то как программируется, может готовые библиотеки есть?
  читал теорию.  но в теории нету схемы подсоединения, то как программируется, может готовые библиотеки есть?  

 люди, кто знает, подскажите новичкам!
  люди, кто знает, подскажите новичкам!  как это делается вобщем?)
  как это делается вобщем?)
almazkazan писал(а):как динамик соединять и как на Си это обрабатывается, мы хотим чтоб этот динамик звуки издавал, или, что еще лучше, чтоб что то говорил. (тогда как этот звук разместить в АВР, или память надо соединять чтоли...как это делается вобщем?)



Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0