Мигалка на микроконтроллере
добрый день.собрал я програматор для avr на ком-порт.пытаюсь прошить через uniprof.в одной версии пишет что записано, а в другой даже не определяет микроконтролер.вставляю в схему - она не рабтает.использую atmega8.в нете пишут что нужно прошивать фьюзы, но я не знаю какие именно.
ПОДСКАЖИТЕ что мне нужно сделать!!! |
Обычно, вместе с программой, выкладывают и установку фьюзов.
|
Вложений: 1
там не дали такой информации.вот схема и прошивка.
------------------------------------------------------ SB1 будет для переключения режима мигания, а кнопка SB2 для изменения частоты мигания. Исходный код приведен ниже: int main(void) { DDRD = 0xff; /* все выводы порта D сконфигурировать как выходы */ DDRC = 0x00; //выводы порта С сконфигурировать как входы PORTC = 0xff; // установить "1" на всех выводах порта C, // включаем подтягивающие резисторы int i=0; //для задержек int j=0; //для смены битов порта D int d=20; //для изменения периода миганий int sw=0; //для изменения режимов миганий while (1) // Бесконечный цикл { if (!(PINC & (1<<PINC4))) //если логический ноль на 4 бите порта С { sw++; //преключить режим миганий if(sw>4)sw=0; } if (!(PINC & (1<<PINC3))) //если логический ноль на 3 бите порта С { d+=20; //увеличить период миганий if(d>260)d=20; } switch(sw) { case 0: DDRD |= 1<<j; for(i=0;i<d;i++)_delay_us(50); DDRD &= ~(1<<j); for(i=0;i<d;i++)_delay_us(50); j++; if(j>3)j=0; break; case 1: DDRD |= 1<<j; for(i=0;i<d;i++)_delay_us(50); DDRD &= ~(1<<j); for(i=0;i<d;i++)_delay_us(50); j--; if(j<0)j=3; break; case 2: DDRD &= ~(1<<j); for(i=0;i<d;i++)_delay_us(50); DDRD |= 1<<j; for(i=0;i<d;i++)_delay_us(50); j++; if(j>3)j=0; break; case 3: DDRD &= ~(1<<j); for(i=0;i<d;i++)_delay_us(50); DDRD |= 1<<j; for(i=0;i<d;i++)_delay_us(50); j--; if(j<0)j=3; break; case 4: DDRD=0xff; for(i=0;i<d;i++)_delay_us(50); DDRD=0x00; for(i=0;i<d;i++)_delay_us(50); break; } } } |
Такую прошивку надо компилировать под конкретный микроконтроллер.
И советую воспользоваться калькулятором фьюзов. FUSE calculator |
вы конечно извините.но я только начинаю работать с микроконтролерами.это будет моя первая схема.поэтому не очень в этом разбираюсь и прошу помощи.как и что делать с нуля?
И ещё вопрос.почему в одной версии uniprof пишет, что записало, а в другой не определяет.обе версии 2010 года.одинаковые. |
пробывал через pony prog так там вообще не хочет фурычить
|
Я же говорю, что сначала надо скомпилировать файл, а уже потом записывать на МК.
|
Какой то код не правильный в обще не могу скомпилировать.
|
Вложений: 1
Не компилировалось, потому что не были указаны соответствующие библиотеки. Вот скомпилированная прошивка:) Фьюзы изменять не нужно
|
Цитата:
#include <avr/io.h> #include "delay.h" |
Часовой пояс GMT +4, время: 07:31. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.