• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Мигалка на микроконтроллере

mish_k98

Ученик
Почётный участник
Регистрация
28 Ноя 2010
Сообщения
728
Реакции
1
Баллы
0
Мигалка на микроконтроллере

добрый день.собрал я програматор для avr на ком-порт.пытаюсь прошить через uniprof.в одной версии пишет что записано, а в другой даже не определяет микроконтролер.вставляю в схему - она не рабтает.использую atmega8.в нете пишут что нужно прошивать фьюзы, но я не знаю какие именно.
ПОДСКАЖИТЕ что мне нужно сделать!!!
 
Обычно, вместе с программой, выкладывают и установку фьюзов.
 
там не дали такой информации.вот схема и прошивка.
------------------------------------------------------
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;
}
}

}
 

Вложения

  • Безымянный.webp
    Безымянный.webp
    11.5 KB · Просмотры: 464
Такую прошивку надо компилировать под конкретный микроконтроллер.
И советую воспользоваться калькулятором фьюзов.

FUSE calculator
 
вы конечно извините.но я только начинаю работать с микроконтролерами.это будет моя первая схема.поэтому не очень в этом разбираюсь и прошу помощи.как и что делать с нуля?
И ещё вопрос.почему в одной версии uniprof пишет, что записало, а в другой не определяет.обе версии 2010 года.одинаковые.
 
пробывал через pony prog так там вообще не хочет фурычить
 
Я же говорю, что сначала надо скомпилировать файл, а уже потом записывать на МК.
 
Какой то код не правильный в обще не могу скомпилировать.
 
Не компилировалось, потому что не были указаны соответствующие библиотеки. Вот скомпилированная прошивка:) Фьюзы изменять не нужно
 

Вложения

Не компилировалось, потому что не были указаны соответствующие библиотеки. Вот скомпилированная прошивка:) Фьюзы изменять не нужно

какие библиотеки ещё указывали? Я указывал.
#include <avr/io.h>
#include "delay.h"
 
Я указывал
#include <avr/io.h>
#include <util/delay.h>

Компилировал в AVR Studio 5
 
Это путь к библиотеке. При создании нового проекта в пятой студии эти две библиотеки автоматически подключены:)
 
Это путь к библиотеке. При создании нового проекта в пятой студии эти две библиотеки автоматически подключены:)

Понятно, я пробовал в Atmel Studio 6.0. и в CodeVisionAVR не получилось :) ну что же главное что файл есть автору удачи.
 
спасибо.буду пробывать.как сделаю-напишу о результате
 
спасибо.всё получилось
 
не могли бы вы мне помочь с компиляцией в сode vision avr 3.Что за чем мне нужно сделать от начала запуска программы.
 
подскажите плиз
 
аууууууу!!!!!!!!!!!!!
 
да что собственно помогать, нужно более подробно описание как компилировать или что нужно, а лучше почитать литературу типа Лебедев М.Б. CodeVisionAVR пособие для начинающих.
 
Назад
Сверху