Найдено 26 результатов

mnirti
Вт июн 13, 2017 10:40:26
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Этот блок нужен просто по условию упражнения: счет начинается по нажатию кнопки, также останавливается и продолжается после очередного нажатия. Может быть условия поместить до каждого цикла?

Код: Выделить всё

	if ((PINB&0b00000001)==0))
{
while ((PINB&0b00000001)==0))
}
mnirti
Вт июн 13, 2017 08:07:20
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Константа была добавлена в дополнение к массиву, который посоветовали сделать константным. Указанный Вами блок выполняется только, если на ножке появляется логическая единица, то есть кнопка не нажата.
mnirti
Вт июн 13, 2017 07:50:28
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Список ошибок, выданных компилятором, теперь новый, код немного подправлен, в циклах есть дополнительные скобки.

#include <avr/io.h>
#define F_CPU 8000000L
#include <avr/io.h>
#include <util/delay.h>
// unsigned int i; переменная не используется

int main(void)
{
unsigned char butcount=0;

DDRD ...
mnirti
Вс июн 11, 2017 16:21:59
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Теперь код переписан так, но отладчик выдает 7 ошибок:

#include <avr/io.h>
#define F_CPU 8000000L
#include <avr/io.h>
#include <util/delay.h>
// unsigned int i; переменная не используется

int main(void)
{
unsigned char butcount=0;

DDRD = 0xFF;
DDRB = 0x00;
PORTD = 0b00000000; // Весь ...
mnirti
Пт июн 09, 2017 15:16:19
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Читаю и слушаю всех, код выходит таким:

#include <avr/io.h>
#define F_CPU 8000000L
#include <avr/io.h>
#include <util/delay.h>
unsigned int i;

int main(void)
{
unsigned char butcount=0;

DDRD = 0xFF;
DDRB = 0x00;
PORTD = 0b00000000; // Весь регистр на выход
PORTB = 0b00000001; // Младший ...
mnirti
Пт июн 09, 2017 13:59:47
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Получается:

Код: Выделить всё

for (i=0; i<10; i++) // инкремента

char dig [10]=  // Массив чисел 
 {
    1<<2; // например, 4
...
	
       }
mnirti
Пт июн 09, 2017 13:38:22
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Массив знаков получился такой:

for (i=0; i<10; i+1) // i должна быть от нуля до 9 включительно, т. к. строго меньше 10, шаг отсчета 1
char dig [10]= // Массив символов для индикатора
{
0b00000110;
0b01011011;
0b01001111;
0b01100110;
0b01101101;
0b01111101;
0b00000111;
0b01111111 ...
mnirti
Пт июн 09, 2017 12:46:24
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Конечно, лучше учить поэтапно. Но у меня получается, что выполняю такие задания параллельно с чтением теории, задания такие уже задают, знаний не хватает. Ищу по кускам, но куски вместе не склеиваются. В учебниках упражнения приводятся для выполнения непосредственно в ОС, как правило. Поэтому ...
mnirti
Пт июн 09, 2017 12:37:11
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Отладчик ошибки нашел в плане того, что не хватает скобок и точек с запятой. А при загрузке кода в МК и тестировании в протеусе получается, что питание на нулевую лапку изначально не подано, при нажатии кнопки часть сегментов не видна и счет останавливается сам по себе. Поэтому подозреваю, что циклы ...
mnirti
Пт июн 09, 2017 12:14:49
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Да, в пункте 3 кнопка не нажата, то есть при запуске счетчика нажимается один раз, для остановки еще раз.

Подскажите, пожалуйста, какие ошибки в структуре:

#include <avr/io.h>
#define F_CPU 8000000L
#include <avr/io.h>
#include <util/delay.h>
unsigned int i;

int main(void)
{
unsigned char ...
mnirti
Пт июн 09, 2017 09:15:51
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

непонятно как отанавливается счетчик повторным нажатием или при отпускании или другой кнопкой

В предыдущих постах было: там одна кнопка на нулевую ножку.

1. При нажатии начинается отсчет.
2. Повторное нажатие - останавливается.
3. Кнопку отпускаю, отсчет продолжается с той цифры, на которой был ...
mnirti
Чт июн 08, 2017 15:40:09
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Уууух, не думал, что всё так запущено

Не запущено, запускать нечего, еще учиться, и учиться...

Если правильно понимаю:

while ((PINB&0b00000001)==0))

цикл будет сравнивать с 0, если приходит ноль, значит счет остановится.

Вы и вправду считаете, что есть такой оператор?

Нет, не считаю ...
mnirti
Чт июн 08, 2017 15:05:11
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Программу пишу в атмель студио, тренируюсь на ATmega8A, там на нулевую лапку подается 1, если кнопку нажимаю, то сразу ноль (синий значок на соединении, проверяю в протеусе).

Тогда, наверное, так:

if ((PINB&0b00000001)==0))
{
delay_ms(10);
while(1);
delay_ms(10);
}

В цикл помещаю 1, чтобы был ...
mnirti
Чт июн 08, 2017 14:09:34
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Обработчик кнопки с избавлением от дребезга контактов такой:

if (PINB.0==0){ per=1;
delay_ms(200);}
while(per==1)
{
if (PINB.1==0) {per=2;
delay_ms(200);}
}

Или обработка нажатия:
private void button1_Click(object sender, System.EventArgs e)
{
MessageBox.Show("button1 was clicked");
}

И ...
mnirti
Чт июн 08, 2017 12:33:29
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

Аlex , исправлюсь, буду предоставлять код с тегами.

Кажется, что код написан все-таки не школьником. Вот адрес самого упражнения:

http://narodstream.ru/avr-urok-9-oformlenie-koda-funkcii/

Мне необходимо именно из этого исходного материала с циклом for сделать немного другой счетчик. Т. к ...
mnirti
Чт июн 08, 2017 10:46:25
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Re: Изменение кода для счетчика

А кто вам запретил пробовать?
Так в том-то и дело, что выполняю упражнение, код во втором случае нужно изменить без привлечения таймера.
mnirti
Чт июн 08, 2017 08:57:28
Форум: AVR
Тема: Изменение кода для счетчика
Ответы: 43
Просмотры: 10845

Изменение кода для счетчика

Здравствуйте. Помогите, пожалуйста.

Нужно дополнить код:
#include <avr/io.h>

#define F_CPU 8000000L
#include <avr/io.h>
#include <util/delay.h>
//unsigned int i;???

//----------
void segchar (unsigned char seg)
{
switch (seg)
{
case 1: PORTD = 0b11111001; break;
case 2: PORTD = 0b10100100 ...
mnirti
Пн май 29, 2017 10:00:12
Форум: AVR
Тема: Подключение нескольких кнопок к ATmga8A
Ответы: 25
Просмотры: 6187

Re: Подключение нескольких кнопок к ATmga8A

Код стал рабочим в таком случае:

{
if (!(PINB&(1<<PINB0)))

butcount=0;


else
{
if (!(PINB&(1<<PINB1)))


butcount=1;

else

{
if (!(PINB&(1<<PINB2)))


butcount=2;

else

if (!(PINB&(1<<PINB3)))


butcount=3;

else
butcount=4;
}

}

}

switch (butcount)

{

case 0 ...
mnirti
Пт май 26, 2017 11:38:03
Форум: AVR
Тема: Подключение нескольких кнопок к ATmga8A
Ответы: 25
Просмотры: 6187

Re: Подключение нескольких кнопок к ATmga8A

ARV , Ваша статья хорошая, но достаточно сложная для новичка. К тому же я знаю еще очень мало функций и их сочетаний.

Ivanoff-iv , спасибо за помощь. Свитч теперь в while, получается так:

while (1)
{
{
if (!(PINB&(1<<PINB0)))

butcount=0;


else
{
if (!(PINB&(1<<PINB1)))


butcount=1 ...
mnirti
Чт май 25, 2017 14:36:50
Форум: AVR
Тема: Подключение нескольких кнопок к ATmga8A
Ответы: 25
Просмотры: 6187

Re: Подключение нескольких кнопок к ATmga8A

Не надо смеяться, подскажите, в чем ошибка. Учу программирование меньше недели, конечно, мне очень многое еще непонятно. Тем более, что стыдно не не знать, а не спрашивать и ничему не учиться. Просто выполняю упражнение, одно из многих.

Перейти к расширенному поиску