Страница 13 из 132
Добавлено: Вт авг 26, 2008 18:22:08
tych
snayperAlfa писал(а):Можно ли его заменить на Tiny2313 и при этом использовать прошивку для AT90S2313
точно не скажу - можно попробовать.
Но есть наверняка и более новые прошивки уже под Тини2313. Поищи.
Добавлено: Вт авг 26, 2008 18:26:46
Aheir
Для вопросов по статьям есть специальный раздел. В частности, по упомянутому Вами материалу есть тема
http://radiokot.ru/forum/viewtopic.php?t=7597, прошу туда. Если коротко, как показала практика (не моя), эту же прошивку для ATTiny2313 использовать не получится, есть решения с софтовым USB, например
http://www.recursion.jp/avrcdc/index.html, есть решения программаторов на ATTiny2313, поищите
Добавлено: Сб авг 30, 2008 12:18:13
tembl4
помогите плиз мне нужно что таймер прерывался 1 раз в секунду написал вот так и чё та это всё опаздывает
Код: Выделить всё
ldi Temp,0b00000100 ;тактовый сигнал = CK/256
out TCCR1B,Temp
ldi Temp,0x98 ;инициализация компаратора
out OCR1AH,Temp
ldi Temp,0x97 ;или 0х96 это совсем чють чють меняет
out OCR1AL,Temp
Добавлено: Сб авг 30, 2008 15:54:12
Денис203
Здравствуйте!! У меня такая беда!! прошиваю тини2313 последовательно... вот таким программатором, используя прогу Uni Prof.... находит,прошивает проц нормально,,, но работает МК, только когда включена отладка проги,, при ее закрытии МК вообще молчит!!
в чем может быть дело?
Добавлено: Сб авг 30, 2008 15:57:18
tych
Может в проге что-то не ТО ! возьми прошивку мигалку светодиодом точно работающую да зашей.
Проверить прошивку можно в PROTEUS 7.4 -
http://www.radiokot.ru/forum/viewtopic. ... &start=220
Добавлено: Сб авг 30, 2008 16:10:45
Денис203
ну я самую обычную прогу пишу... просто включить светодиод.. и он даже это не хочет, без отладчика...
Добавлено: Сб авг 30, 2008 16:24:13
tych
Денис203 писал(а):ну я самую обычную прогу пишу... просто включить светодиод.. и он даже это не хочет, без отладчика...
А в симуляторе прошивка работает ?
Добавлено: Сб авг 30, 2008 16:30:29
Денис203
да, работает...
я говорю... и в реале работает,, только когда запускаю отладку в УниПроф.....
я думаю.. просто могет какой флажок где поставить?
Добавлено: Сб авг 30, 2008 20:20:38
Алексей77
Может светодиоду питания не хватает?
Добавлено: Сб авг 30, 2008 20:27:53
delay
А вы шлейф прогамматора отключаете? Ресет куда-нибудь подключен?
Добавлено: Вс авг 31, 2008 07:23:37
Денис203
и не отключаю и отключаю.. все равно... одно!
но когда отключаю, то Ресет на нолик через резистор подключен!
а куда он вообще должен? пустой должен?
Добавлено: Вс авг 31, 2008 07:29:45
Денис203
Все! Спасибо! разобрался! работает!
Добавлено: Вс авг 31, 2008 08:42:35
delay
В чем была проблема? Зачем на ресет резистор на 0?
Добавлено: Вс авг 31, 2008 08:55:00
tych
Денис203 писал(а):когда отключаю, то Ресет на нолик через резистор подключен!
Это вы
в обучалке научились ?
Денис203 писал(а):а куда он вообще должен?
стр. 7 в моей домашней страничке.
Добавлено: Вс авг 31, 2008 09:26:37
sachok
Граждане помогите начинающиму. Увидел на конкурсе работу "термометр на ATtiny2313" хочу себе такой но там нет исходника, а так не интересно. Хочу разобраться как єто все работает сам, поєтому начал сам писать прошивку. Часть программы взял из книги. Уже есть инициализация датчика и запись показаний в масив. Но тут я столкнулся с проблемой: как вывести значения которые записаны в масиве на семисегментный индикатор с общим анодом. Был на сайте ARV читал статью про вывод на индикаторы, понял то что нужно сделать прерывания с частотой 75Гц так как индикаторов будет 3. Может вы мне помогите в этом деле:
1. Как сделать такие прерывания таймера.
2.И как вывесть данные из масива.
Температурный датчик DS1820, МК ATtiny2313. PORTB удобно использовать для вывода информации на сегменты индикаторов, PORTD первые 3 бита хочу задействовать для управления анодами индикаторов.
Код который у меня уже есть во вложении.
И ещё нужно ли сохранять ROM код датчика??
Добавлено: Вс авг 31, 2008 09:29:22
tych
sachok писал(а):нужно сделать прерывания с частотой 75Гц таймера.
Об этом ПОДРОБНО рассказано в Задаче 6 в моей домашней страничке. Там в картинках показана настройка прерываний от таймера.
=== 1-wire систему вы можете отладить в PROTEUS 7.4 - там есть пример в папке
C:\Program Files\Proteus7.4\SAMPLES\VSM for AVR\One-Wire
Есть и динамическая индикация.
Добавлено: Вс авг 31, 2008 11:25:43
sachok
tych спасибо! На вашей страничке посмотрел как делаются прерывания в ICC. Вот такой код получился:
Код: Выделить всё
//TIMER0 initialize - prescale:1024
// WGM: CTC
// desired value: 75Hz
// actual value: 74,999Hz (0,0%)
void timer0_init(void)
{
TCCR0B = 0x00; //stop timer
TCNT0 = 0x71; //set count
OCR0A = 0x8F; //set count
OCR0B = 0x8F; //set count
TCCR0A = 0x00; //start timer
TCCR0B = 0x05; //start timer
}
#pragma interrupt_handler timer0_compa_isr:iv_TIM0_COMP
void timer0_compa_isr(void)
{
}
#pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
void timer0_ovf_isr(void)
{
//TIMER0 has overflowed
TCNT0 = 0x71; //reload counter value
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
timer0_init();
MCUCR = 0x00;
GIMSK = 0x00;
TIMSK = 0x03;
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
//
void main(void)
{
init_devices();
//insert your functional code here...
}
Кажись все правильно. Proteus штука очень хорошая при наладке но мне ещё нет чего налаживать и там нет исходников что бы посмотреть как эти функции реализированые. По поводу вывода информации на индикаторы: насколько я понимаю мне надо выводить на 3 первые бита PORTD лог 1 с частотой переключения в 25Гц. Как єто сделать? вопрос по выводу информации из масива остаётся открытым, а также что делать с ROM кодами датчиков их надо считывать, сохранять??
Добавлено: Вс авг 31, 2008 11:39:09
tych
sachok писал(а):tych спасибо! На вашей страничке посмотрел как делаются прерывания в ICC. Вот такой код получился
Поздравляю

Там же написано
как отличаются обработчики прерываний для разных компиляторов.
sachok писал(а):Proteus штука очень хорошая при наладке но там нет исходников что бы посмотреть как эти функции реализированые.
Для сети устройств 1-wire ЕСТЬ ИСХОДНИКИ ! под CVAVR.
Смотрите ВНИМАТЕЛЬНЕЕ.
sachok писал(а): По поводу вывода информации на индикаторы: насколько я понимаю мне надо выводить на 3 первые бита PORTD лог 1 с частотой переключения в 25Гц. Как єто сделать?
Называется такая штука - Динамическая индикация 7seg LED
Вот почитайте ПОДРОБНО как делать на Си для ATmega16 - разбито на 2 части
Добавлено: Вс авг 31, 2008 14:45:25
Денис203
Еще раз, всем привет! с той проблемой разобрался... на Ресет ничего не надо!
теперь , что-то не могу понять... пишу такой текст, элементарный, чтобы запустить таймер 1, компаратор Б,, все для того же тини 2313...
и ничего не работает... может с аврстудио косяк случился??
.device ATtiny2313
.include "C:\Program files\Atmel\AVR Tools\AvrAssembler\Appnotes\tn23134def.inc"
.cseg
.org 0
rjmp Reset
rjmp Timer1_CompB
Timer1_CompB:
Reset:
ldi r16,0b00100000
out TIMSK,r16
ldi r16,0b00000010
out TCCR1B,r16
ldi r16,0b00010000
out OCR1BL,r16
sei
main:rjmp main
Добавлено: Вс авг 31, 2008 14:50:39
sachok
Как посмотреть исходник в Proteus я уже нашол

С ROM кодом тоже кажись все понял если датчик только 1 то его считывать и сохранять не надо. Исходники которые есть в архивах не хотят компилироваться в CVAVR. Может подскажете прогу которой можно откомпилировать или что надо исправить для CVAVR что бы он
warningив и
errorор не выдавал.