Задание на КР "Разработка устройства набора номера". Разработать устройство на МК, реализующее функции ввода номера с клавиатуры, отображения набранного номера, формирование тонального сигнала(как я понял DTMF). Начал делать, по методичке от Атмел AVR314 http://www.atmel.com/ru/ru/Images/doc1982.pdf Там же взял исходник для СИ. Подправил его. Делаю на МК ATtiny2313 . Исправил входные порты, выставил входной. Кнопки считывает, выход видит, но ничего на него не выводит, не могу понять в чем проблема, может быть кто нибудь сталкивался с DTMF, можете помочь? Ниже прикрепил схему и сам код.
Не являюсь специалистом в данной теме, но у Вас ошибка в коде. В частности. Код (C++): TIMSK = 0x04; // Int T1 Overflow enabled Код один, комментарий другой, в AVR314 включается прерывание по переполнению. А у Вас TIMSK = 0x04, исходя из документации на ATtiny2313 (Bit 2 – OCIE0B: Timer/Counter0 Output Compare Match B Interrupt Enable). А дальше все про таймер 1 Код (C++): TCCR1A=0x81; TCCR1B=0x01; И прерывание, в которое ни когда не попадем. Код (C++): interrupt [TIM1_OVF] void timer1_ovf_isr(void) Вероятно, надо как в оригинале. Код (C++): TIMSK = 0x80; // Int T1 Overflow enabled Так же в TCCR1A, в бите COM1A1 устанавливается поведение выхода Compare Output Mode for Channel A, для Вашего режима, а это пин PB3 который Вы используйте для подключения клавиатуры. Проверьте режим работы таймера, правильно ли он выбран, не вникал. Для AVR314 есть перевод - http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR314.htm. UPD. Да для включения прерывания по переполнению Код (C++): TIMSK = 0x80; // Int T1 Overflow enabled 7 бит - Bit 7 – TOIE1: Timer/Counter1, Overflow Interrupt Enable.
Evooool, собираете в железе или только моделирование в Proteus? Какие fuse выставлены? Если возможно, прикрепите проект в Proteus.
Вообщем ночью, сидел разбирался с исходником Атмела на ассемблере, и вроде как уделал. А на си так и не получилось. Осталось прикрепить дисплей, только вот думаю что на ассемблере ето будет труднее сделать чем на си. Вот сижу сейчас и думаю как поступить, либо на си пытаться сделать. Либо на ассемблере разбираться с дисплеем.... Сейчас прикреплю оба проекта. Я только в протеусе моделирую, нам не надо собирать))) http://rgho.st/7XMF4YHmM