Поиск сообщества
Показаны результаты для тегов 'RTC'.
Найдено: 4 результата
-
Не могу запустить асинхронный режим. Ниже будет представлен код которым пытаюсь отладить. Там в 1 коде идёт работа от внутреннего источника таков (стоит 1МГц). После 5 миганий таймер должен перейти в асинхронный режим и мигать с частотой в 1 Гц. У меня происходит 5 миганий потом ничего. Фьюзы менять пробовал, ничего не дало, сейчас дефолт. Корпус кварца к земле тянуть пробовал - безрезультатно. Возможно что-то в подключении накосячил, если не видно на фото ниже, спрашиваете, нужно будет - нарисую схему. Компилятор Atmel Studio 7 Шью через Sind Prog 2.1.1 + USBasp 2.0 Вот код: .macro outi ldi r16, @1 out @0, r16 .endm .org $000 rjmp reset .org $001 reti .org $002 reti .org $003 reti .org $004 rjmp timer2_ovf .org $005 reti .org $006 reti .org $007 reti .org $008 reti .org $009 reti .org $00A reti .org $00B reti .org $00C reti .org $00D reti .org $00E reti .org $00F reti .org $011 reti .org $012 reti .ORG INT_VECTORS_SIZE reset: .equ portout=portd .equ ddrout=ddrd .def led=r17 .def mask=r18 .def counter=r19 outi spl,low(ramend) outi sph,high(ramend) outi ddrout, 0xff outi tccr2, 0b00000111 outi timsk, 1«toie2 ldi led,1«5 ldi mask,1«5 sei cycle: cpi counter, 10 breq offtim rjmp cycle timer2_ovf: inc counter out portout, led eor led, mask reti offtim: outi timsk, 0«toie2 rjmp asinxron asinxron: outi assr, 0b00001000 back: in r16, assr cpi r16, 0b00001000 brne back outi tccr2, 0b00000101 outi tcnt2, 0 outi ocr2, 0 outi timsk, 1«toie2 m1: rjmp m1 Верх меги на фото слева.
-
Добрый день! Пытаюсь настроить на Atmega8 Asynchronous Clock. Цель -- сделать часы. По задумке, мк работает на частоте 1МГц (фьюзы не трогаю, оставляю заводские значения), к пинам TOSC1/TOSK2 подключается кварц на 32.768 кГц, а Timer2 настраивается таким образом, что генерирует прерывания один раз в секунду. Вот, что я делаю: ASSR |= 1 << AS2; TCCR2 = 0b00000101; TIMSK |= 1 << TOIE2; sei(); Нужно ли подключать кварц с конденсаторами, или без -- не понял. В даташите информации не нашёл. Пробовал и так, и эдак -- разницы не заметил. Что получилось: В Протеусе всё вроде работает правильно, однако, даже если отсоединить кварц, это ни на что не влияет. На макетной плате схема работает раза в 1.5 быстрее, чем нужно; опять таки, отсоединение кварца ничего не меняет. В чём я ошибаюсь, чего не учитываю? К сообщению прикладываю файл прошивки и протеуса. Примечания: в Протеусе сделал имитацию дисплея на светодиодах, так как встроенный вариант не работал корректно. Для того, чтоб цифры мигали медленнее, можно раскомментировать строку "#define DEBUG_BLINKING" -- иначе в протеусе не рассмотреть, что получается. Пишу на C++ под avr-g++, впрочем, никаких фишек языка не использую. clock.cpp clock_build_with_LEDs.pdsprj
-
Доброго времени суток. Уважаемые коллеги, подскажите, пожалуйста. Собрал часы на газоразрядных индикаторах. Так называемые NIXIE CLOCK. При разводке не учел требований к микросхеме часов реального времени. В даташите написано, чтоб не было никаких линий под камнем. В итоге под ней проходит пара высоковольтных линий 180В для питания ламп. В итоге часы спешили очень сильно (около 10 минут в сутки). Когда допер что к чему подложил медную фольгу от текстолита под камень и соединил с общим землей. Но часы всеравно спешат. Не так сильно, но спешат 5 сек в сутки. Вопрос: если я заново разработан плату с учётом этого косяка и под камень положу общий полигон. Будут ли часы идти точно? (По даташиту порядка 1 сек. в год). Спасибо.
-
привет! есть кто живой? всех с праздниками! пока ждал заказанных rtc, поигрался с разными часами в протеусе (1302, 1307, 8563). пользовался встроенными библиотеками кодвижона - все работает, все норм. разве что 8563 подключил с помощью либы "i2c" - рабоатает, но часы явно отстают. как я понял из-за того, что во встроенной i2c.h нет настройки частоты. вот решил попробовать эти часы запустить с библиотекой TWI.h из того же кодвижена, но вылазят ошибки, причем в местах, тупо скопированных из комментария либы по подключению. код добавил ниже, объясните, в чем ошибки? ОШИБКИ В КОММЕНТЫ ДОБАВИЛ /*--------------------------------------------------------------- pcf8563 test ---------------------------------------------------------------*/ #include <mega88pa.h> #include <pcf8563_twi.h> #define TWI_CLK_RATE 100000 #define MCU_FREQ_ 8000000 TWI_MASTER_INFO_t twi_master; // ЗДЕСЬ ВЫДАЕТ ОШИБКУ " '(' expected " !!! interrupt [TWI] void twi_master_isr(void) { twi_master_int_handler(&twi_master); // ОШИБКА " undefined symbol 'twi_master_int_handler' " } void main(void) { unsigned char day=1, month=1, hour=6, min=6, sec=6; int year=8; twi_init(&TWI0,TWI_SDASETUP_4CYC_gc,TWI_SDAHOLD_OFF_gc,false); // ОШИБКА " undefined symbol 'twi_init' " twi_master_init(&twi_master,&TWI0,TWI_BAUD_REG(MCU_FREQ_,TWI_CLK_RATE)); pcf8563_twi_init(&twi_master); #asm("sei") while(1) {} } чушь какая-то... особенно смущает, что про функции из "twi.h" (которая в этом проекте видится кодвижоном) компилятор пишет как про какие-то символы...