Не могу знать, ибо это есть изврат, даже не пробовал никогда.Мастер Ломастер писал(а):TCCR1B.WGM12 = 1;
кодвижн эту запись понимает?
А вот с портами удобненько работать так )
Не могу знать, ибо это есть изврат, даже не пробовал никогда.Мастер Ломастер писал(а):TCCR1B.WGM12 = 1;
кодвижн эту запись понимает?
зачем спрашивать то, что легко найти в интернете? нет стандарта на правила поведения, нигде не написано "человек обязан называть незнакомца на ВЫ", однако есть неписанные правила хорошего тона, которых цивилизованные люди придерживаются... хотите, чтобы ваша программа была написана в стиле "эй, ты, придурок, куда прешь, коровья морда?" - пожалуйста. я стараюсь писать в стиле "будьте любезны, отойдите в сторону: вы мне мешаете". где я этому научился? а сам такой умныйBerZerK-ku писал(а):Зачем пересказывать своими словами, если есть возможность дать ссылку на стандарт-первоисточник?
BerZerK-ku писал(а):не уж-то так трудно вставить одну ссылку?!
ключевое слово НЕПИСАНЫЕМастер Ломастер писал(а):однако есть неписанные правила хорошего тона, которых цивилизованные люди придерживаются
Протестил ваш кекс действительно только два младших разряда моргают.totty писал(а):Добрый вечер, форумчане, помогите пожалуйста найти ошибку,
контроллер мега8, 4х 7сегментных индикатора, должны выводить число 4 разрядное, на индикаторе при тестировании в протеусе творится нечто не понятное, 2 разряда только выводит
Код: Выделить всё
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;
}
}Код: Выделить всё
#include <mega8.h>
#include <delay.h> // подключаем библиотеку задержкиВаш процессор не рассчитан на выполнение таких опкодов, тем более со всякими там наворотами в виде темы и прочей дребедени оболочки.Процессор АВР выполняет большинство команд за один цикл такта.Так что не беспокойтесь.Ваш процессор большую часть времени проведет возле While(1) {}totty писал(а):vitalik_1984, спасибо большое
а вот еще нюанс, протеус при тестировании схемы с этим кодом на 90% загружает ЦП у мк тоже будет высокая степень загрузки? или это не показатель для подобных доводов?
наверно в спецификациях для компилятора, в справочных файлах студии.Или просто в интернете.FreshMan писал(а):скажите пожалуйста, а как новичку узнать какие готовые функции есть вообще, для чего они предназначены и где их взять ?Код: Выделить всё
#include <mega8.h> #include <delay.h> // подключаем библиотеку задержки
Нет не паралельно! По этому не рекомендуется "засиживатся" в обработчике прерывания.totty писал(а):Еще вопрос, допустим в коде есть работа АЦП и прерывания таймера для индикации на 7-сегментные индикаторы, при каждом прерывании происходит пауза работы ацп или он как и работал так и работает? т е параллельно с выполняющимся кодом написанном в прерывании?
Код: Выделить всё
PORTB.3=1
PINB.3=1Нет. Вот почитайте раздел "Порт в МК"FreshMan писал(а):равнозначны ли по смыслу и по силе действия вышеуказанные команды ?Код: Выделить всё
PORTB.3=1 PINB.3=1
Код: Выделить всё
#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);
};
}..а погуглить тяжело?FreshMan писал(а):приведи полное название книжек, плиз
Это не одно и то же.Дело в том,что порты мк управляются тремя регистрами :FreshMan писал(а):равнозначны ли по смыслу и по силе действия вышеуказанные команды ?Код: Выделить всё
PORTB.3=1 PINB.3=1