изучите, наконец, даташит - с WDT просто так работать нельзя, надо выдерживать определенную последовательность действий при смене его режима работы. не надо гадать - в даташите есть примеры, которые будут работать.SIM31 писал(а):Все равно каждые 2 секунды перезагружает после отработки прерывания.
CodeVision AVR в вопросах и ответах
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- SIM31
- Это не хвост, это антенна
- Сообщения: 1363
- Зарегистрирован: Чт апр 04, 2013 22:22:57
- Откуда: Белгород, РФ
Re: CodeVision AVR в вопросах и ответах
Все равно похоже инициализация WDT глючит, только не Proteus, а старая версия CV 3.12, а новее у меня нет.
Наверное это пофиксили в версии 3.25
"Improved the code generated for initializing the watchdog of non-Xmega chips"
Наверное это пофиксили в версии 3.25
"Improved the code generated for initializing the watchdog of non-Xmega chips"
-
a.garkin
- Нашел транзистор. Понюхал.
- Сообщения: 175
- Зарегистрирован: Вт сен 29, 2009 09:28:51
- Откуда: Ульяновск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
День Добрый!
Понимаю что тема уже не раз поднималась, не могу понять почему не работает. Компилируется без ошибок.
При замыкании вывода порта PORTD2 (KEY1) на землю, PORTb.2 включил светодиод.
Добавлено after 21 minute 48 seconds:
Сам нашел)))
Изменил на:
а было:
Понимаю что тема уже не раз поднималась, не могу понять почему не работает. Компилируется без ошибок.
Код: Выделить всё
#include <mega328p.h>
//используем стандартную процедуру задержки
#include <delay.h>
// Declare your global variables here
// Standard Input/Output functions
#include <stdio.h>
// TWI functions
#include <twi.h>
#define KEY1 (1<<PORTD2)
#define KEY2 (1<<PORTD3)
#define ANYKEY (KEY1 | KEY2)
#define NOKEY 0
unsigned char getkey(void)
{
unsigned char key = ~(PIND & ANYKEY);
delay_ms(20);
if(~(PIND & ANYKEY) == key)
return key;
else
return NOKEY;
}
void main(void)
{
// Declare your local variables here
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=(1<<CLKPCE);
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=Out Bit2=Out Bit1=Out Bit0=Out
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (1<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=0 Bit2=0 Bit1=0 Bit0=0
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// Port C initialization
// Function: Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRC=(0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
// State: Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTC=(0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
// Port D initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
// State: Bit7=P Bit6=P Bit5=P Bit4=P Bit3=P Bit2=P Bit1=T Bit0=T
PORTD=(1<<PORTD7) | (1<<PORTD6) | (1<<PORTD5) | (1<<PORTD4) | (1<<PORTD3) | (1<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (0<<WGM00);
TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2A output: Disconnected
// OC2B output: Disconnected
ASSR=(0<<EXCLK) | (0<<AS2);
TCCR2A=(0<<COM2A1) | (0<<COM2A0) | (0<<COM2B1) | (0<<COM2B0) | (0<<WGM21) | (0<<WGM20);
TCCR2B=(0<<WGM22) | (0<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00;
OCR2A=0x00;
OCR2B=0x00;
// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0);
// Timer/Counter 1 Interrupt(s) initialization
TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1);
// Timer/Counter 2 Interrupt(s) initialization
TIMSK2=(0<<OCIE2B) | (0<<OCIE2A) | (0<<TOIE2);
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
// Interrupt on any change on pins PCINT8-14: Off
// Interrupt on any change on pins PCINT16-23: Off
EICRA=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
EIMSK=(0<<INT1) | (0<<INT0);
PCICR=(0<<PCIE2) | (0<<PCIE1) | (0<<PCIE0);
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART0 Mode: Asynchronous
// USART Baud Rate: 9600
UCSR0A=(0<<RXC0) | (0<<TXC0) | (0<<UDRE0) | (0<<FE0) | (0<<DOR0) | (0<<UPE0) | (0<<U2X0) | (0<<MPCM0);
UCSR0B=(0<<RXCIE0) | (0<<TXCIE0) | (0<<UDRIE0) | (1<<RXEN0) | (1<<TXEN0) | (0<<UCSZ02) | (0<<RXB80) | (0<<TXB80);
UCSR0C=(0<<UMSEL01) | (0<<UMSEL00) | (0<<UPM01) | (0<<UPM00) | (0<<USBS0) | (1<<UCSZ01) | (1<<UCSZ00) | (0<<UCPOL0);
UBRR0H=0x00;
UBRR0L=0x67;
// Analog Comparator initialization
// Analog Comparator: Off
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
ADCSRB=(0<<ACME);
// Digital input buffer on AIN0: On
// Digital input buffer on AIN1: On
DIDR1=(0<<AIN0D) | (0<<AIN1D);
// ADC initialization
// ADC disabled
ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
// SPI initialization
// SPI disabled
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);
// TWI initialization
// Mode: TWI Master
// Bit Rate: 100 kHz
twi_master_init(100);
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
switch(getkey())
{
case KEY1:
// обработка кнопки 1
PORTB.2=1;
break;
}
}
}
При замыкании вывода порта PORTD2 (KEY1) на землю, PORTb.2 включил светодиод.
Добавлено after 21 minute 48 seconds:
Сам нашел)))
Изменил на:
Код: Выделить всё
unsigned char getkey(void){
unsigned char key;
key = ~PIND & ANYKEY;
delay_ms(15);
if(key == (~PIND & ANYKEY))
return key;
else
return NOKEY;
}а было:
Код: Выделить всё
unsigned char getkey(void)
{
unsigned char key = ~(PIND & ANYKEY);
delay_ms(20);
if(~(PIND & ANYKEY) == key)
return key;
else
return NOKEY;
}
Re: CodeVision AVR в вопросах и ответах
Atmega 644 PA. прошивал ппосталом2. фьюзы прошились не правильно. проверил этой программой.на JTAGEN нет галки, а должна быть. сконектился этой программой. выставил фьюзы так. не нашел здесь фьюза SPIEN(куда он делся?). выставил и прошшил фьюзы.как на картинке и проц залочился, не определяется теперь. где ошибся?
- Вложения
-
- фьюзищи.jpg
- (86.01 КБ) 531 скачивание
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: CodeVision AVR в вопросах и ответах
Ну, так ты его на работу с кварцем настроил... наверно потому и не определяется
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Re: CodeVision AVR в вопросах и ответах
каким фьюзом? башка кругом, не знал да еще забыл. мне надо то было СМА оживить. уже неделю гуглю.
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: CodeVision AVR в вопросах и ответах
если кварц там стоит, то всё ок. если нет - придется генератор городить (частота не сильно критична, оrоло 1МГц) и подавать импульсы на XTAL1
Добавлено after 32 minutes 11 seconds:
источник тактирования настраивается фьюзами CKSEL(3..0)
Добавлено after 32 minutes 11 seconds:
источник тактирования настраивается фьюзами CKSEL(3..0)
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Да, судя по всему, там на кварц 3..8МГц выставлено.
Повторил "галочки" на fuse calculator:

Собственно, вот из-за этого недолюбливаю все эти программы с "галочками". Avrdude просто передаёшь готовые параметры (-U lfuse:w:0x1d:m -U hfuse:w:0x06:m -U efuse:w:0xfa:m) через тот же Makefile или любой скрипт, и никогда не ошибёшься.
Повторил "галочки" на fuse calculator:
Собственно, вот из-за этого недолюбливаю все эти программы с "галочками". Avrdude просто передаёшь готовые параметры (-U lfuse:w:0x1d:m -U hfuse:w:0x06:m -U efuse:w:0xfa:m) через тот же Makefile или любой скрипт, и никогда не ошибёшься.
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: CodeVision AVR в вопросах и ответах
если кварца конструкцией не предусмотрено, то, скорее всего, человек стал очередной жертвой инверсии фьюзов.
слава богу, в его случае - не смертельно...
слава богу, в его случае - не смертельно...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Re: CodeVision AVR в вопросах и ответах
расколдовал, внешним генератором. с фьюзами вроде разобрался. не хочет и эта программа. прописывать JTAGEN. проц наерное мертвый.
-
a.garkin
- Нашел транзистор. Понюхал.
- Сообщения: 175
- Зарегистрирован: Вт сен 29, 2009 09:28:51
- Откуда: Ульяновск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
День Добрый!
Каким образом можно организовать алгоритм. Включили порт - 30 минут ждем - выключили порт.
По таймеру? Но что-то запутался. Подкиньте код.
Каким образом можно организовать алгоритм. Включили порт - 30 минут ждем - выключили порт.
По таймеру? Но что-то запутался. Подкиньте код.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Да, по таймеру. В основном цикле кнопки при нажатии кнопки включаем порт и устанавливаем переменную в N. В обработчике прерывания таймера эта переменная декрементируется, пока она больше нуля (if (N>0) {N--;}). В основном цикле, помимо опроса кнопок, проверяем эту переменную, если она равна нулю - значит, N времени прошло, устанавливаем N в -1, и выключаем порт.
N должно соответстовать 30 минутам. В зависимости от частоты вызова прерывания это может быть одна переменная типа int или long (если хватает), или можно её разбить на две (по аналогии с секундами-минутами) - одна декрементируется постоянно в каждом прерывании, другая - при "переполнении" первой.
N должно соответстовать 30 минутам. В зависимости от частоты вызова прерывания это может быть одна переменная типа int или long (если хватает), или можно её разбить на две (по аналогии с секундами-минутами) - одна декрементируется постоянно в каждом прерывании, другая - при "переполнении" первой.
Re: CodeVision AVR в вопросах и ответах
[uquote="РобертНСК",url="/forum/viewtopic.php?p=3444409#p3444409"]расколдовал, внешним генератором. с фьюзами вроде разобрался. не хочет и эта программа. прописывать JTAGEN. проц наерное мертвый.[/uquote] незнаю на каком этапе, но прц я угандошил. новый нормально записался и фьюзы тоже.
ВСЕМ СПАСИБО.
ВСЕМ СПАСИБО.
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: CodeVision AVR в вопросах и ответах
для успокоения души сноси его к фьюз-доктору, если проц жив, то доктор все регистры ему на место вправит
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Re: CodeVision AVR в вопросах и ответах
я его расколдовал, пишу и читаю, но в СМА не работает. новый проц запустил машину.
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: CodeVision AVR в вопросах и ответах
может ноги подгорели?
Добавлено after 1 minute 57 seconds:
если СМА = стиральная машина автомат, то проверь протечки на разъем мотора, и за сырости в нем бывает вышибает цепи тахометра...
Добавлено after 1 minute 57 seconds:
если СМА = стиральная машина автомат, то проверь протечки на разъем мотора, и за сырости в нем бывает вышибает цепи тахометра...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
-
sanyo.95
- Нашел транзистор. Понюхал.
- Сообщения: 170
- Зарегистрирован: Вс мар 30, 2014 21:41:24
- Откуда: Украина
Re: CodeVision AVR в вопросах и ответах
Здравствуйте. Делаю тахометр. Atmega8 будет измерять период сигнала с катушки зажигания, преобразовывать в частоту/обороты в минуту и выводить на семисегментник. Програму написал, все мерит, вроде нормально, на железке тоже работает. НО при исчезновения сигнала (в момент остановки двигателя), на дисплее остается последнее значение, а хотелось бы "0000". Я не особо опытный в этих делах, прошу помочь. Цепляю исходник, Proteus, файлы проекта.

Спойлер
Код: Выделить всё
#include <mega8.h>
#include <delay.h>
unsigned char i,OFcount,var[4],zamer_T,c3,c2,c1,c0;
unsigned long T,f;
unsigned int rising1,rising2;
static flash unsigned char SEGMENTE[]= // масив для индикатора
{
(0b10111110), // 0
(0b10001000), // 1
(0b11110010), // 2
(0b11011010), // 3
(0b11001100), // 4
(0b01011110), // 5
(0b01111110), // 6
(0b10001010), // 7
(0b11111110), // 8
(0b11011110), // 9
};
void bcd(unsigned long s)
{
c3=0;c2=0;c1=0;
while (s>=1000){s-=1000;c3++;}
while (s>=100){s-=100;c2++;}
while (s>=10){s-=10;c1++;}
c0=s;
}
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
OFcount++;//считаем количество переполнений
}
interrupt [TIM1_CAPT] void timer1_capt_isr(void)
{
switch(zamer_T)
{
case 0:
rising1 = ICR1; // Запоминаем значение счётчика
OFcount = 0; // Обнуляем количество переполнений счётчика
zamer_T = 1; // Переходим к следующему вычислению
break;
case 1:
rising2 = ICR1; // Запоминаем значение счётчика
T = (unsigned long)rising2 - (unsigned long)rising1 + ((unsigned long)OFcount * 65536); // Приводим все переменные к одному типу и вычисляем период импульса
f = 30000000/T; // Вычисляем обороты в минуту
zamer_T = 0;
break;
}
}
// Индикация
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0=0x06;
PORTC &=~ (1<<i);
i++;
if(i>=4)i=0;
PORTB=SEGMENTE[var[i]]; //значение для индикации
PORTC |= (1<<i);
}
void main(void)
{
DDRB=(1<<DDB7) | (1<<DDB6) | (1<<DDB5) | (1<<DDB4) | (1<<DDB3) | (1<<DDB2) | (1<<DDB1) | (0<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (1<<PORTB0);
DDRC=(0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);
PORTC=(0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
// Clock value: 125,000 kHz
TCCR0=(0<<CS02) | (1<<CS01) | (1<<CS00);
TCNT0=0x06;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 125,000 kHz
// Mode: Normal top=0xFFFF
// Input Capture on Rising Edge
// Input Capture Interrupt: On
TCCR1A=0x00;
TCCR1B=0xC2;
TCNT1=0x00;
ICR1=0x00;
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (1<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (1<<TOIE1) | (1<<TOIE0);
#asm("sei")
while (1)
{
var[0]=c3;
var[1]=c2;
var[2]=c0;
var[3]=c1;
bcd(f);
}
}
- Вложения
-
- Taho.rar
- (98.94 КБ) 244 скачивания
- SIM31
- Это не хвост, это антенна
- Сообщения: 1363
- Зарегистрирован: Чт апр 04, 2013 22:22:57
- Откуда: Белгород, РФ
Re: CodeVision AVR в вопросах и ответах
Наверное в модуле индикации сделать проверку в конце:
или тут
Код: Выделить всё
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0=0x06;
...
PORTB=SEGMENTE[var[i]]; //значение для индикации
PORTC |= (1<<i);
if (OFcount>1000) f=0; // в счетчике интервала значение за разумными пределами
}или тут
Код: Выделить всё
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
OFcount++;//считаем количество переполнений
if (OFcount>1000) f=0; // в счетчике интервала значение за разумными пределами
}-
sanyo.95
- Нашел транзистор. Понюхал.
- Сообщения: 170
- Зарегистрирован: Вс мар 30, 2014 21:41:24
- Откуда: Украина
Re: CodeVision AVR в вопросах и ответах
Спасибо. Но не один не второй вариант не дал ни какого результата.SIM31 писал(а):сделать проверку в конце
- SIM31
- Это не хвост, это антенна
- Сообщения: 1363
- Зарегистрирован: Чт апр 04, 2013 22:22:57
- Откуда: Белгород, РФ
Re: CodeVision AVR в вопросах и ответах
Наверное просто не дождались, слишком большая константа, через 65535*1000/125000=511 секунд обнулится, если правильно понял логику программы )) можно вместо 1000 написать число 2, должно обнуляться через 1 секунду.