1. mrbin - 20 Августа, 2013 - 20:13:28 - перейти к сообщению
помогите с программой,как зделать так чтобы диод мигал с частотой 38 КГц пример програмы ,желательно в code vizion,нужно для ик датчика припятствий
2. Artem - 20 Августа, 2013 - 21:27:22 - перейти к сообщению
А прога на СИ должна быть?
3. mrbin - 20 Августа, 2013 - 22:25:58 - перейти к сообщению
да
4. Vladimir72 - 21 Августа, 2013 - 13:04:05 - перейти к сообщению
CODE:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/delay.h>
unsigned char counter= 0;
ISR(TIMER1_OVF_vect)
{
counter++;
if(counter == 30)
{
TCCR1A = TCCR1A ^ (1<<5);
counter = 0;
}
}
int main(void)
{
PORTB=0x02;
DDRB=0x04;
DDRD=0xFF;
PORTD=0x01;
TCCR1A=0x23;
TCCR1B=0x19;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0xDE;
OCR1BH=0x00;
OCR1BL=0x3F;
TIMSK=0x04;
sei();
while(1)
{
if(!(PINB & 0x02))
{
PORTD |= 0x01;
}
else
{
PORTD &= ~0x01;
}
}
}
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/delay.h>
unsigned char counter= 0;
ISR(TIMER1_OVF_vect)
{
counter++;
if(counter == 30)
{
TCCR1A = TCCR1A ^ (1<<5);
counter = 0;
}
}
int main(void)
{
PORTB=0x02;
DDRB=0x04;
DDRD=0xFF;
PORTD=0x01;
TCCR1A=0x23;
TCCR1B=0x19;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0xDE;
OCR1BH=0x00;
OCR1BL=0x3F;
TIMSK=0x04;
sei();
while(1)
{
if(!(PINB & 0x02))
{
PORTD |= 0x01;
}
else
{
PORTD &= ~0x01;
}
}
}
(Добавление)
частота 36 КГц. МК 8МГц
5. mrbin - 21 Августа, 2013 - 13:29:23 - перейти к сообщению
ISR(TIMER1_OVF_vect)
пишет ошибка
пишет ошибка
6. Vladimir72 - 21 Августа, 2013 - 13:36:42 - перейти к сообщению
странно у меня все нормально, где ругается, в какой программе, в коде МК настроена 8МГц
7. Роботов - 21 Августа, 2013 - 13:38:15 - перейти к сообщению
mrbin пишет:
ISR(TIMER1_OVF_vect)
пишет ошибка
пишет ошибка
В КодеВижене надо писать так:
CODE:
interrupt [TIM0_OVF] void tim0_isr(void)
(Добавление)
...а если на
Vladimir72 пишет:
будет ругаться, то надо писать sei();
CODE:
#asm("sei");
8. mrbin - 21 Августа, 2013 - 14:31:44 - перейти к сообщению
спасибо !сейчас попробую
(Добавление)
вот эта еще вылазиит незначительная ошибка /static inline unsigned char cpu_irq_save(void)
(Добавление)
что то не работает программа,в чем может быть причина?
(Добавление)
и частоту на 38 надо
(Добавление)
вот эта еще вылазиит незначительная ошибка /static inline unsigned char cpu_irq_save(void)
(Добавление)
что то не работает программа,в чем может быть причина?
(Добавление)
и частоту на 38 надо
9. mrbin - 24 Августа, 2013 - 19:11:25 - перейти к сообщению
можно коментарии к этой программе?
(Добавление)
да на 8
(Добавление)
да на 8
10. Artem - 27 Августа, 2013 - 13:34:02 - перейти к сообщению
Вот код, сам его использовал для того же дела, что и у вас, только не помню, какое значение должно лежать в регистре:
нужно изменять значение в регистре OCR1A
вот ссылка на сайт с формулой для всех подсчётов:
http://radioparty.ru/index.php/p...am-c/231-lesson5
мне очень помогло когда-то
CODE:
#include <avr/io.h> // подключаем библиотеку АВР
#include <util/delay.h> // подключаем библиотеку задержек
int main (void) {
unsigned int f;
f=0;
int t;
t=0;
DDRB = 0xFF;
DDRC = 0xFF;
DDRD = 0x00;
PORTD = 0xFF;
TCCR1A |= (0<<WGM11)|(1<<WGM10)|(1<<COM1A1)|(0<<COM1A0);
TCCR1B |= (0<<WGM12)|(0<<WGM13)|(1<<CS11)|(0<<CS10)|(0<<CS12);
ICR1 = 0x00;
OCR1A = 0x00;
}
#include <util/delay.h> // подключаем библиотеку задержек
int main (void) {
unsigned int f;
f=0;
int t;
t=0;
DDRB = 0xFF;
DDRC = 0xFF;
DDRD = 0x00;
PORTD = 0xFF;
TCCR1A |= (0<<WGM11)|(1<<WGM10)|(1<<COM1A1)|(0<<COM1A0);
TCCR1B |= (0<<WGM12)|(0<<WGM13)|(1<<CS11)|(0<<CS10)|(0<<CS12);
ICR1 = 0x00;
OCR1A = 0x00;
}
нужно изменять значение в регистре OCR1A
вот ссылка на сайт с формулой для всех подсчётов:
http://radioparty.ru/index.php/p...am-c/231-lesson5
мне очень помогло когда-то
11. mrbin - 30 Августа, 2013 - 21:30:12 - перейти к сообщению
у меня почему то не одна из данных программ не идет,в чем может быть дело? может что то не так делаю?
12. Artem - 31 Августа, 2013 - 20:24:31 - перейти к сообщению
Какая у вас среда разработки? Может с микроконтроллером что-то не так?
13. mrbin - 02 Сентября, 2013 - 22:16:38 - перейти к сообщению
как понять,среда разработки?
14. Predator - 02 Сентября, 2013 - 22:30:26 - перейти к сообщению
как называется программа, которую вы запускаете, и в окошке которой пишете текст.
не в блокноте-же вы программируете....
не в блокноте-же вы программируете....
хотя мне приходилось и так...
15. mrbin - 02 Сентября, 2013 - 22:41:41 - перейти к сообщению
code vision