Подскажите плиз где в CodeVision увеличить размер стека? И возможно ли это? А то он предупреждает что 6 байтов осталось, а мне еще кучу функций дописывать надо... :roll:
-----
Уже нашел. Вопрос снят. Теперь такое дело: чем можно отсимулировать Тини26? :roll:
Вот поэтому мне си и не нравится. ну если написано const char a=8475982347529740; то тут явно ошибка, а но прглатывает это... А потом ракеты взрываются...
dx40 писал(а):Вот поэтому мне си и не нравится. ну если написано const char a=8475982347529740; то тут явно ошибка, а но прглатывает это... А потом ракеты взрываются...
Дак тож не Си виновен, а автор компилятора который проглатывает это.
Имею дело с mega8 Пытаюсь сделать робота... Это мой первый опыт прежде чем сделать что-то существенное хочу собрать схемку, в которой через заданное кол-во времени 2 диода будут мигать. Я так понимаю, что если ножка сконфигурирована на выход, то если её через светодиод замкнуть на GND то он должен светиться (при условии что он работоспособен и правильно подключен и ток через него течёт допустимый). Светодиоды замкнуты на B0-GND и D7-GND
Вот мой листинг
#include <mega8.h>
// Timer 1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) { // Reinitialize Timer 1 value TCNT1H=0xFF; TCNT1L=0xFF; // Place your code here PORTB.0^=1; PORTD.7^=1; }
// Declare your global variables here
void main(void) { // Declare your local variables here
Неправильно обрабатывается прерывание. В прерывании в счётчик таймера1 загружается 0xFFFF, значит, он переполнится на следующем же тике, т.е. будет не мигание, а горение вполнакала. Лучше использовать режим таймера СТС, тогда не нужно будет в прерывании ничего перегружать, достаточно будет загрузить на старте регистр OCR1A или OCR1B (не забываем поправить вектор прерывания TIM1_OVF на TIM1_COMPA/B). Да, CV понимает 16-битные регистры, незачем писать REGH=aa, REGL=bb, можно сразу REG=aabb.
Подскажите как сделать обработчик прерываний к примеру на INT1 у меня не получилось. #include <avr/io.h> #include <avr/signal.h> #include <avr/interrupt.h>