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

Не знаю в чем причина но с такой бякой сталкиваюсь впервые. Может я просто не знаю этот камень, но вот такая беда. Сначала пропал SPI взял JTAG смотрю фузы, спи на месте, а с частотой какая то ерунда вот дословно что я увидел а АВРСтудии (Int. RC Osc.; Start-up time: 6 CK + 65 ms) то есть частоты как таковой вроде нет? Заливаю простейший код по моргать диодом не работает. Ставлю внешний генератор на 8 мгц тоже не работает. В общем не знаю что и думать. Может кто сталкивался с подобным?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с частотой какая то ерунда вот дословно что я увидел а АВРСтудии (Int. RC Osc.; Start-up time: 6 CK + 65 ms) то есть частоты как таковой вроде нет?

Int. RC Osc. - это ж вроде внутренний RC-генератор, получается что частота, как таковая, есть...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Int. RC Osc. - это ж вроде внутренний RC-генератор, получается что частота, как таковая, есть...

 

Да внутренний, но как же, а где ее количество 1,2,4,8 ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да внутренний, но как же, а где ее количество 1,2,4,8 ???

Это не количество, а ряд частот. Выбирается фьюзами (fuse bits).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не количество, а ряд частот. Выбирается фьюзами (fuse bits).

 

Похоже что вы не внимательно прочитали мой пост. Извините за ошибку конечно же ряд частот. Так вот еще раз говорю что в АВРСтудии должно по идее быть (Int. RC Osc.8; Start-up time: 6 CK + 65 ms) но там цифры нет, на других контроллерах все нормально, вот я и засомневался может с камнем что не так. Поэтому и интересуюсь может кто сталкивался с подобным явлением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже что вы не внимательно прочитали мой пост. Извините за ошибку конечно же ряд частот. Так вот еще раз говорю что в АВРСтудии должно по идее быть (Int. RC Osc.8; Start-up time: 6 CK + 65 ms) но там цифры нет, на других контроллерах все нормально, вот я и засомневался может с камнем что не так. Поэтому и интересуюсь может кто сталкивался с подобным явлением.

 

Если речь идет действительно о ATmega 162, то там никакой сетки частот нет, есть один внутренний генератор 8 МГц, а системная частота может настраиваться через регистр CLKPR. Посмотреть, работает ли внутренний генератор, проще всего на выходе Port B.0 при запрограммированном CKOUT Fuse.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С конвеера завода контроллер настроен на внутренний генератор, который работает на частоте 8 мгц, но там ещё включен предделитель на 8, в итоге результирующая частота работы контроллера равна 1мгц.

 

битами CKSEL 0-3 можно переключится на внешний кварц.

 

а также CKDIV8 отключаем внутренний предделитель тактовой частоты на 8.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да бох с ним с внутренним яж вам говорю подцепил внешний на 8 мгц и не пашет нет прерывания и все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да бох с ним с внутренним яж вам говорю подцепил внешний на 8 мгц и не пашет нет прерывания и все.

ничего не понятно, что Вы хотите...

Если подцепили внешний кварц, так выберите "Ext. Crystal..." и прошейте это значение фьюзов.

О каком прерывании идет речь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ничего не понятно, что Вы хотите...

Если подцепили внешний кварц, так выберите "Ext. Crystal..." и прошейте это значение фьюзов.

О каком прерывании идет речь?

 

Ну конечно я прекрасно понимаю что нужно выбрать внешний кварц в настройках фузов. Я так и делаю но камень не работает. Прерывания имею ввиду элементарные на порту В2 например сидит нога светодиода программно делаю ее источником положительного сигнала (или минуса без разницы, есно меняю диод ногами) и осуществляю задержку _delay_ms(50); после задержки программно запрещаю ногу В2 как источник плюса. Так вот диод не моргает хоть какую задержку ставь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

#include <avr/io.h>
#include <compat/deprecated.h>
#include <avr/interrupt.h>
#include <util/delay.h>



void led(void){
    sbi(DDRA,PA4); 
    sbi(PORTA,PA4);
_delay_us(50);
    cbi(DDRA,PA4); 
    cbi(PORTA,PA4);    
}

int main(void)
{

while(1)
    {
    led();
    }

}

 

Я думаю схему можно и самому догадаться там один диод!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

void led(void){
    sbi(PORTA,PA4);
        _delay_us(50);
    cbi(PORTA,PA4);    
         _delay_us(50);
}

А если так? Чем смотрите прерывания? Надеюсь не по светодиоду? Ножку на выход настройте один раз!!! где нить в начале программы. Если хотите увидеть мигание светодиода, то частоту мигания следует взять во много раз ниже. Например 1Гц. Тогда используйте задержку в 500 мс, на не в 50 мкс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вы ногу порта не могли перепутать? Лучше сразу на весь порт сделайте вывод.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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