спасибо большое , буду дома сегодня разбираться с симулятором, что бы наглядно видеть какая сторчка что делает. оказывается как можно просто все написать , а я то нагородил((((
Да, заблуждился на слове "поочерёдно" Думал : следующий зажёгся -- предыдущий погас. Беру свой салют обратно Но не прошло без пользы -- скачал доку на тиню13. Пущай будет Хотя, конечно, можно и динамически... Но это уже чересчур !
к тому же регистр сдвиговый стоит 7 рублей , не такие уж и большие деньги. а тинька 13 у нас 25р соит.очень гуманно.)))думал только памяти маловато а как оказалось можно код очень грамотно написать и код становится очень даже коротеньким. думаю с опытом придет и у меня такое))) всем спасибо .
код не работает , при включении на portb.1 устанавливается еденица , больше не каких действий не происходи.(((потом через некоторое время порт устанавливается 0((((
код не работает , при включении на portb.1 устанавливается еденица , больше не каких действий не происходи.(((потом через некоторое время порт устанавливается 0((((
Ребята подскажите, что я сделал неправильно Задание СпойлерВ исходном состоянии в младшем разряде семисегментного све-тодиодного индикатора (HL2) отображается цифра «0» и программа ожидает превышения напряжением на положительном входе аналогового компаратора напряжения на отрицательном входе (порогового напряжения). Когда происходит превышение порогового уровня – на протяжении 100мс звучит звуковой сигнал с частотой F=2,4 кгЦ и на семисегментный светодиодный индикатор (HL2) выводится цифра «1». После снижения напряжения на положительном входе аналогового компаратора ниже порогового уровня программа переходит в исходное состояние. Спойлер#include <mega16.h> #include <delay.h> char k,p=0;
// Analog Comparator interrupt service routine interrupt [ANA_COMP] void ana_comp_isr(void) { // Place your code here p=~p; //инверсия if (ACSR==0x0A){ACSR=0x0B; } else {ACSR=0x0A;}; k=0;
}
// Declare your global variables here
void main(void) { // Declare your local variables here
// Analog Comparator initialization // Analog Comparator: On // Interrupt on Output Toggle // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x0A; // включение компаратора SFIOR=0x00;
// Global enable interrupts #asm("sei") PORTC.1=1; // разрешение на 0 индикатор (K4) PORTD=0xF3; while (1) { // Place your code here if (p==1){ PORTD=0x42; // происходит отображение на индикаторе if(k==0){ PORTB.4=1; // включается звуковой сигнал delay_ms(100); PORTB.4=0; // выключается звуковой сигнал k=1; }; } else{ PORTD=0xF3; };//else } }
В общем, когда проверяю на лабораторном стенде, не выполняется условие "Когда происходит превышение порогового уровня – на протяжении 100мс звучит звуковой сигнал с частотой F=2,4 кгЦ и на семисегментный светодиодный индикатор (HL2) выводится цифра «1»."
Есть подозрение, что-то я сделал не так в : Спойлер// Analog Comparator interrupt service routine interrupt [ANA_COMP] void ana_comp_isr(void) { // Place your code here p=~p; //инверсия if (ACSR==0x0A){ACSR=0x0B; } else {ACSR=0x0A;}; k=0; Подскажите пожалуйста
Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 10, 2013 23:44:29
Модератор
Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4568 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
BMO писал(а):
Ну тогда подскажите, что неправильно
Как раз это Вы должны сами найти и спросить тут : "Почему у меня вот это не работает так, как должно работать" Это я, если что, про конкретный участок кода говорю. Вы - хозяин кода, Вы должны отлично понимать, что этот код делает и что должно происходить. Возьмите отладчик, погоняйте код, проанализируйте, выловите проблемную часть. Ну нельзя на форум вываливать кусище кода, в котором люди будут сидеть и разбираться, и сказать - "у меня этот код не работает, где там проблема ?". Тем более, не описав нормально проблему. Как она у Вас не работает, что конкретно и какая часть условия не работает, ... ? Вы может питание не подали на устройство
ЗЫ: И перестаньте полностью цитировать предыдущее сообщение, на этом форум это запрещено !
проверил еще раз , код рабочий, беру свои слова обратно. извините за то что дезинформировал вас. у меня были не правильно ножки подключены к сдвиговому регистру порт Б1 был подключен к sh-cp еще раз извините. все отлично работает , спасибо .
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 386
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения