Поиск сообщества
Показаны результаты для тегов 'CodeVision'.
Найдено: 2 результата
-
Единственно, что я смог сделать за неделю в изучении языка Си это написать примитивную программу для МК Аттини13а, что сможет 1м нажатием на кнопку включить ЛЭД-лампу. Повторным нажатием выключить ее. Но никак не могу уже который день придумать, как написать текст в листинге так, чтобы одним нажатием загоралась 1я лампа, потом еще одним нажатием 2я, и только после 3го нажатия тухли все лампы. Товарищи бывалые и профессионалы, помогите! ) Вот исходник вкл./выкл. 1й лампы: /***************************************************** This program was produced by the CodeWizardAVR V2.05.0 Evaluation Automatic Program Generator © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 05.04.2020 Author : Freeware, for evaluation and non-commercial use only Company : Comments: Chip type : ATtiny13A AVR Core Clock frequency: 1,200000 MHz Memory model : Tiny External RAM size : 0 Data Stack size : 16 *****************************************************/ #include <tiny13a.h> int st=0; // Declare your global variables here void main(void) { // Declare your local variables here // Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif // Input/Output Ports initialization // Port B initialization // Func5=In Func4=In Func3=Out Func2=In Func1=Out Func0=In // State5=P State4=P State3=0 State2=P State1=0 State0=P PORTB=0x35; DDRB=0x0A; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0A output: Disconnected // OC0B output: Disconnected TCCR0A=0x00; TCCR0B=0x00; TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-5: Off GIMSK=0x00; MCUCR=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=0x00; // Analog Comparator initialization // Analog Comparator: Off ACSR=0x80; ADCSRB=0x00; DIDR0=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; while (1) { if (!PINB.0) { if (!st) { st=1; if (!PINB.1) { PORTB.1=1; } else { PORTB.1=0; } } } else { st=0; } } }
- 7 ответов
-
- МК Аттини13
- Прошивка
-
(и ещё 1 )
C тегом:
-
Приветствую всех любителей электроники! Недавно решил попробовать себя в программировании контроллеров, купил для этого китайские атмегу и программатор (из заголовка), скачал кодвижн. Драйвера для юсбасп установились, здесь вроде все норм. Пытаюсь для начала считать сигнатуру мк, используя "чип программатор" кодвижна. (в качестве программатора в настройках выставил "atmel avrisp mkII (usb)"). выдает ошибку "error: couldnt find tool". когда проделывал тоже самое с неделю назад при считывании сигнатуры выдавались все нули и соответствующая этим значениям какая-то там микруха (не а88ра), но с тех пор решил все по-новой проделать, переустановил драйвера, проги и т.д. и теперь реакции вообще ноль(см. выше). так же попробовал получить хоть какой-нить ответ через synaprog и burn-o-mat. ситуация в обоих случаях одинаковая: при считывании фьюзов второй светодиод на юсбасп один раз мигает (что уже хорошо, считаю)), и выдается ошибка: "avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: error: programm enable: target doesn't answer. 1 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check." пытался ещё закоротить перемычку jp3 на программаторе (вроде как для понижения частоты) - во всех прогах результат тот же. из всего вышенаписаного такой вопрос: подскажите, как мне начать таки работать с имеющимися железяками? я вообще надеялся, что буду преодолевать сложности в программах, регистрах и периферии, будет над чем поломать голову и поразбираться, но пока не могу тупо включить что есть. помогите разобраться
- 12 ответов
-
- atmega88pa
- usbasp
-
(и ещё 3 )
C тегом: