![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| kostay |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
вобшем вот из етого надо сделать так 4тобы мигал ЛЕД 8 после каждых 15 прерываний примерно раз в секунду(тоесть в одну секунду 15 прерываний и зажигаем), 4астота ЦК 8Mhz внешние прерывания надо вобше убрать, делать 4ерез timer1 Это сообщение отредактировал(а) kostay - 2.4.2008, 11:48 |
|||
|
||||
| PILOT |
|
|||
|
производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
/*********************************************************************
Project : Kierroslukumittari Version : 2.0 (AVR-mikro-ohjaimelle, muokattu vanhaa 51-veriota Date : 2.6.2004 (51-versio 13.10.1998) Author : Jari Koskinen Company : Tietomyrsky Oy Comments : 20.5.05 Korjattu LED12 ja LED14 järjestys Muutettu ATtiny2313-piirille Chip type : ATtiny2313 Clock frequency : 4 MHz *********************************************************************/ #include <tiny2313.h> #define TRUE 1 #define FALSE 0 unsigned char int0done; // 0,5 s lippu unsigned char int0count; // ulkoisten kesk. laskuri unsigned char int0count0; // ed. laskurin 0,5 s summa /********************************************************************/ /* init-funktio, joka tekee kaikki tarvittavat alustustoimenpiteet */ /********************************************************************/ void init(void) { CLKPR=0x80; // Crystal Oscillator division factor: 1 CLKPR=0x00; PORTB = 0x00; // B-portin alustukset DDRB = 0xFF; PORTD = 0x00; // D-portin alustukset DDRD = 0x7B; TCCR1A = 0x00; // Timer 1: n alustukset TCCR1B = 0x0B; // CK/64 OCR1AH = 0xC3; // C350H = 50000 OCR1AL = 0x50; // 50000 * 2 us = 0,1 s MCUCR = 0x03; // keskeytys nousevasta reunasta TIMSK = 0x40; // Timer(s)/Counter(s) Interrupt(s) init ACSR = 0x80; // Analog Comparator: Off int0count0 = int0count = 0; int0done = FALSE; #asm("sei") // Asetetaan globaali keskeytys bitti } /********************************************************************/ /* Timer 1:n (16-bit) keskeytyspalveluohjelma. Keskeytys tapahtuu */ /* 0,5 s välein (4,032MHz/64=63 kHz, 1/63 kHZ * 31500 = 0,5s) */ /********************************************************************/ interrupt [TIM1_COMPA] void timer1_comp_isr(void) { int0count0 = int0count; // siirrä keskeytysten määrä int0count = 0; // nollaa keskeytyslaskuri int0done = TRUE; // aseta lippu, tulos on siirretty } /********************************************************************/ /* Pääohjelma odottaa (0,5s) keskeytyspulssien laskennan tulosta */ /* Kun tulos on selvillä, sytytetään tulosta vastaavat LEDit */ /* suurimmasta alkaen */ /********************************************************************/ void main(void) { init(); // tee tarvittavat alustukset while(1) { if (int0done == TRUE) // onko seuraava tulos valmiina? { // jos on, päivitetään näyttö int0done = FALSE; // merkitse tulos käsitellyksi PORTB = 0x00; // sammuta kaikki LEDit PORTD = 0x00; if (int0count0 > 1234567) // тут число соответствующее делителю частоты и частоте вызова OCR PORTB.6 = 1; // sytytä 4. LED } }; } -------------------- тут могла быть Ваша реклама... |
|||
|
||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |