Ресурсы attiny2313

сегодня опытным путем выяснил, что файл .hex размером 5778 байт влезает в тиню, а вот размером 5860 - уже фигушки.

а еще интересно, что мой

а еще интересно, что мой avr-gcc не понимает изменений в makefile. приходится делать touch main.c

reply

makefile читает не компилятор, а программа make, входящая в состав тулчейна avr-gcc.
Для того, чтобы перекомпилировать исходник с только отредактированным make-файлом, достаточно очистить рабочую директорию от временных файлов: make clean; и собрать проект: make all.

а еще интереснее, что

не получается что-то у меня прицепить кнопку к int1...
дребезг даже если кнопка не нажата...

и да, термометр работает даже с оптимизированным кодом!

попробуй конденсатор в

попробуй конденсатор в параллель кнопке поставить, а саму ногу порта подтянуть к +5В через 1кОм резистор, и в обработчике прерывания сделай паузу маленькую(все вместе даст результат)!

ну, не работало совсем -

ну, не работало совсем - из-за того что обнулял в теле программы целиком весь регистр, и как-то упустил из виду эту строчку.
теперь остался дребезг, да.
подтяжку внутренюю включил. вроде полегче стало.
в обработчике прерывания просто паузу делать смысла нет - похоже, он не успевает сам выполниться целиком, как его опять вызывают (другого объяснения происходящему у меня нет)
паузу делал через pause(3000); правда, оптимизацию включил. может, попробовать через _delay_loop_1?
пробовал делать в обработчике паузу с cli();pause();sei(); но фигвам - то же самое.
пробовал отключать

  1. GIMSK=~(1<<INT1);

перед паузой и обратно включать - эффект нулевой...

Некто

  1. ISR( INT1 )
  2. {
  3. ...
  4. // Сброс флага прерывания
  5. GIFR = (1<<INTF1);
  6. }

не допираю... к тому же паузы

не допираю...
к тому же паузы во внешнем прерывании плохо выглядят на семисегментном индикаторе :-(