Страница 168 из 421
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 27, 2011 11:13:13
BCluster
Мастер Ломастер писал(а):TCCR1B.WGM12 = 1;
кодвижн эту запись понимает?
Не могу знать, ибо это есть изврат, даже не пробовал никогда.
А вот с портами удобненько работать так )
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 27, 2011 11:15:21
Мастер Ломастер
BerZerK-ku писал(а):Зачем пересказывать своими словами, если есть возможность дать ссылку на стандарт-первоисточник?
зачем спрашивать то, что легко найти в интернете? нет стандарта на правила поведения, нигде не написано "человек обязан называть незнакомца на ВЫ", однако есть неписанные правила хорошего тона, которых цивилизованные люди придерживаются... хотите, чтобы ваша программа была написана в стиле "эй, ты, придурок, куда прешь, коровья морда?" - пожалуйста. я стараюсь писать в стиле "будьте любезны, отойдите в сторону: вы мне мешаете". где я этому научился? а сам такой умный

Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 27, 2011 11:21:52
BerZerK-ku
Если бы я знал, откуда вы взяли эти правила

Это форум куда обращаются за советом/помощью, не уж-то так трудно вставить одну ссылку?!
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 27, 2011 12:05:29
BCluster
Мастер Ломастер, имхо это непробиваемо

)
BerZerK-ku писал(а):не уж-то так трудно вставить одну ссылку?!
Мастер Ломастер писал(а):однако есть неписанные правила хорошего тона, которых цивилизованные люди придерживаются
ключевое слово НЕПИСАНЫЕ
---
Варианты PORTB.2=1 удобно использовать если нужно дернуть ногу. Одну.
Если надо записать по битам регистр, гораздо лучше и удобнее это делать так, как предлагает Мастер Ломастер
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 28, 2011 00:15:31
vitalik_1984
totty писал(а):Добрый вечер, форумчане, помогите пожалуйста найти ошибку,
контроллер мега8, 4х 7сегментных индикатора, должны выводить число 4 разрядное, на индикаторе при тестировании в протеусе творится нечто не понятное, 2 разряда только выводит
Протестил ваш кекс действительно только два младших разряда моргают.
Подправил.
Там с if путанница
Перенёс counter в прерывание
Код: Выделить всё
interrupt [TIM0_OVF] Timer0_ovf(void)
// прерывание по переполнению Т0 для индикации 7-seg
{
static unsigned int counter=0;
if (counter==0)
{
PORTD.0=1;
PORTD.1=0;
PORTD.2=0;
PORTD.3=0;}
else if (counter==1)
{
PORTD.0=0;
PORTD.1=1;
PORTD.2=0;
PORTD.3=0;}
else if (counter==2)
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=1;
PORTD.3=0;}
else
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=0;
PORTD.3=1;
}
PORTB=data[counter];
counter++;
if (counter>=4)
{
counter=0;
}
}
Так залил все четыре заморгали.
Лучше было как в исходнике оставить SWITCH
interrupt [TIM0_OVF] Timer0_ovf(void)
// прерывание по переполнению Т0 для индикации 7-seg
{
PORTD&=0xF0;
switch(counter)
{
case 0: PORTB=data[counter]; PORTD.3=1; break;
case 1: PORTB=data[counter]; PORTD.2=1; break;
case 2: PORTB=data[counter]; PORTD.1=1; break;
case 3: PORTB=data[counter]; PORTD.0=1; break;
}
counter++;
if (counter>=4)
{
counter=0;
}
}
конверт дата тоже наоборот работает поменяйте числа в
коде:
temp=x;
res=temp/1000; //Calculate 1000-s
data[3]=codes[res];
temp=temp-res*1000;
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 28, 2011 03:35:50
totty
vitalik_1984, спасибо большое

а вот еще нюанс, протеус при тестировании схемы с этим кодом на 90% загружает ЦП у мк тоже будет высокая степень загрузки? или это не показатель для подобных доводов?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 28, 2011 06:41:24
BerZerK-ku
Протеус показывает загрузку ЦП вашего ПК при моделировании схемы.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт дек 30, 2011 20:34:11
FreshMan
Код: Выделить всё
#include <mega8.h>
#include <delay.h> // подключаем библиотеку задержки
скажите пожалуйста, а как новичку узнать какие готовые функции есть вообще, для чего они предназначены и где их взять ?

Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт дек 30, 2011 21:51:40
vitalik_1984
totty писал(а):vitalik_1984, спасибо большое

а вот еще нюанс, протеус при тестировании схемы с этим кодом на 90% загружает ЦП у мк тоже будет высокая степень загрузки? или это не показатель для подобных доводов?
Ваш процессор не рассчитан на выполнение таких опкодов, тем более со всякими там наворотами в виде темы и прочей дребедени оболочки.Процессор АВР выполняет большинство команд за один цикл такта.Так что не беспокойтесь.Ваш процессор большую часть времени проведет возле While(1) {}

Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт дек 30, 2011 22:02:15
vitalik_1984
FreshMan писал(а):Код: Выделить всё
#include <mega8.h>
#include <delay.h> // подключаем библиотеку задержки
скажите пожалуйста, а как новичку узнать какие готовые функции есть вообще, для чего они предназначены и где их взять ?

наверно в спецификациях для компилятора, в справочных файлах студии.Или просто в интернете.
Вот например
тут поглядеть...
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб дек 31, 2011 12:24:59
totty
Еще вопрос, допустим в коде есть работа АЦП и прерывания таймера для индикации на 7-сегментные индикаторы, при каждом прерывании происходит пауза работы ацп или он как и работал так и работает? т е параллельно с выполняющимся кодом написанном в прерывании?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб дек 31, 2011 12:29:33
Apparatchik
totty писал(а):Еще вопрос, допустим в коде есть работа АЦП и прерывания таймера для индикации на 7-сегментные индикаторы, при каждом прерывании происходит пауза работы ацп или он как и работал так и работает? т е параллельно с выполняющимся кодом написанном в прерывании?
Нет не паралельно! По этому не рекомендуется "засиживатся" в обработчике прерывания.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб дек 31, 2011 13:26:13
FreshMan
равнозначны ли по смыслу и по силе действия вышеуказанные команды ?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб дек 31, 2011 13:33:27
Apparatchik
FreshMan писал(а):
равнозначны ли по смыслу и по силе действия вышеуказанные команды ?
Нет.
Вот почитайте раздел "Порт в МК"
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб дек 31, 2011 13:47:01
FreshMan
ага............, это подтяжка
ох у не люблю я же рекомендованный тобой сайт.............,преподают как то там инфу не толково

Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб дек 31, 2011 14:09:44
ChipKiller
FreshMan вместо того чтобы "озадачивать" всех подобными вопросами достаточно прочесть всего пару книжек (благо найти их можно не только в магазине). В качестве справочника по AVR лучшее ИМХО книги Евстифеева, а по CV AVR есть книга Лебедева.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб дек 31, 2011 14:13:33
FreshMan
Код: Выделить всё
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
void main(void)
{
UCSRA=0x02;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
PORTB=0x00;
DDRB=0x01;
while (1)
{
PORTB.0=1; //Включаем светодиод на 0 выходе порта D
printf("On"); //Передаем ПК слово включен
delay_ms(1000); // Делаем задержку в 1с
PORTB.0=0;
printf("Off");
delay_ms(1000);
};
}
есть вот такая програмка.................., мне здесь непонятен смысл команды
printf("Off");..........., где должнен печатать это слово ПК ???

Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб дек 31, 2011 14:14:41
FreshMan
ChipKiller, приведи полное название книжек, плиз

Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб дек 31, 2011 14:24:42
ChipKiller
FreshMan писал(а):приведи полное название книжек, плиз

..а погуглить тяжело?
Евстифеев AVR, Лебедев AVR и сразу море ссылок....
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб дек 31, 2011 14:33:03
vitalik_1984
FreshMan писал(а):
равнозначны ли по смыслу и по силе действия вышеуказанные команды ?
Это не одно и то же.Дело в том,что порты мк управляются тремя регистрами :
1-DDRx-определяет направление порта
высокий уровень(логическая единица)
тут означает,что порт используется для вывода данных.
2-PORTx-включает подтяжку ноги порта при DDRx=0 или переключает ногу порта с низкого уровня на высокий при DDRx=1
3-PINx-меняет свое значение в соответствии с состоянием реальной ноги при DDRx =0
запись значения в регистр PINx практического смысла не имеет