Перейти к содержанию

PizzaHunter

Members
  • Постов

    4
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные PizzaHunter

  1. Это скрин-шот последующих попыток. В первый раз я прошивал фюзы. И только один из них - тот что отмечен на скриншоте. То есть в первый раз галочка program fuse bits стояла.

    "Простенький генератор на несколько мегагерц" - что вы имеете ввиду? у меня стоит кварц на 16МГц, и еще второй низкочастотный. Есть в запасе кварц на 4Мгц. Или этот генератор не на кварцевом резонаторе?

  2. Здравствуйте, господа. Я студент 2го курса, захотел научиться работать с МК.

    У меня Atmega128, на макетной плате. Я пользуюсь CVAVR. Программатор - ISP на LPT порте, BM9009 от МастерКита.

    Питание - через стабилизатор 5В, от аккума 9.6В. На плате есть вся обвязка контроллера, кнопка ресет, 2 кварца, прикреплена платка со светодиодами. Я изначально хотел сделать то что описано в Задании 1 курса по AVR. ВОТ

    Но столкнулся с проблемой. 1й раз я прошил МК, с единственным запрограммированным фюзом CKOPT = 0 (что значит - использовать внешний кварц больше 8МГц - у меня на 16МГц.)

    А второй раз CVAVR упорно не желает его прошивать.

    Лампочки мигают после прошивки при подключении питания, ресет работает как кнопкой так и с компа, питане на шлейф программатора идет - проверял мультиметром. Программатор выбран STK200+/300

    как и нужно. Выбран LPT1 порт. У меня на компе есть только он.

    Я надеюсь если он мигает светодиодами, то контроллер еще жив.

    Код программы прилагается:

    #include <mega128.h>

    #define PA_OUT DDRA = 0xFF

    // ++++ функция инициализации МК ++++

    void initialization(void){

    PA_OUT; //сделать PORTA выходом

    TCCR0 = 0x07;/* таймер включить

    последние 3 бита тут 1 0 1, а нужно вроде как 1 1 1...??? может нада написать TCCR0 = 0x07; ?? ) раз меньше чем тактовая.*/

    }

    void main(void)

    {

    initialization();

    while(1) //бесконечный цикл

    {

    PORTA++; //PORTA=PORTA+1

    while (!(TIFR&0x01));// ждем установки флага переполния TIMER0(TIFR - флаг переполнения) 1&1 = 1; !1 = 0. While(0) - выход из цикла, идем дальше, вниз, и обнуляем флаг.

    TIFR = 0x01; //обнулить флаг переполнения. в AVR обнуляется при вписывании единицы. теперь идем в начало функции main. и так пока не отключим питание МК или не клацнем RESET кнопку

    }

    }

    Гуру, подскажите в чем может быть проблема.... Пожалуйста.

    И вот что мне говорит CVAVR:

    post-91150-1244786794_thumb.jpg

    post-91150-1244786935_thumb.jpg

×
×
  • Создать...