Вт окт 31, 2017 06:42:58
Вт окт 31, 2017 06:49:07
Ср ноя 01, 2017 08:37:37
.include "tn13def.inc" ; Header files
//.equ MCUclock=4000000 ; 4MHz
.list; // Отоброжения листинга исполнения команды.
.cseg; работаем с програмной памятью а не озу или eeprom
.org 0; устанавливаем начальную позицию строки
rjmp START; Reset Handler
rjmp START; IRQ0 Handler
rjmp START;; PCINT0Z Handler
rjmp START; Timer0 Overflow Handler
rjmp START; EEPROM Ready Handler
rjmp Comparator; Analog Comparator Handler
rjmp START; TIM0_COMPA CompareA Handler
rjmp START; Timer0 CompareB Handler
rjmp START; Watchdog Interrupt Handler
rjmp START; ADC Conversion Handler
//Оброботка прерывания от компаратора
Comparator:
cbi DDRB,4;
cbi PORTB,4; - Подкючаем подтягивающий резистор для включения лампы
reti; - Выход с под программы прерывания
//оброботка прерывания порта INT0, по высокому сигналу.
//Определяем начальные параметры микроконтролера.
START:
CLI; команда запрещает глобальные прерывания.
//инициализация стэка.(установка максимально размера ОЗУ);
ldi R17, RAMEND;
out SPL, R17;
//Отключаем аналогово-цифровой преобразователь
CBI ADCSRA, ADEN;
//Подключаем компаратор для сравнения сигналов
//Разрешаем прерывания
sbi ACSR, ACIE;
//Подключаем внутрений ион 1,23 Вольт. на AIN0 вывод.
sbi ACSR, ACBG;
LDI R22,1<<AIN1D|1<<AIN0D;//Если какой-либо из входов ADC3-0 используется как аналоговый,
OUT DIDR0,R22;//то в соответствующий бит ADC3D-ADC0D нужно устанавливать логическую единицу.
//Устанавливаем работу портов на вход и выход.
//Устанавливаем выходы DDB1 и DDB0 работу на вход для компаратора
//Если порт DDB установлен в 1 то данный порт является выходам,
//а если в 0 то входам.
ldi R16,1<<DDB4;
out DDRB,R16;
ldi R16, 1<<PB4;
out PORTB, R16;
//Разрешаем глобальные прерывания
sei;
//Переходим к основному циклу проверки
rjmp START1;
START1:
nop;
rjmp START1;
.exit
Ср ноя 01, 2017 12:08:37
Вы хоть читаете что вам пишут?strengerst писал(а):И снова компаратор
sbi ACSR, ACIS1; // Изменение состояния выхода компаратора с «1» на «0» ACIS1=1 ACIS0=0
Ср ноя 01, 2017 13:40:18
Ср ноя 01, 2017 13:51:25
Открой мой проект. Работает?strengerst писал(а):Сделал все как сказали , изменил состояние выхода компаратора с «1» на «0» в протеусе сделал точ точ как на видео, у меня не входит в прерывания и все. Че за хрень не знаю чуть поже выложу видео. Большое спасибо за видео.
Ср ноя 01, 2017 14:00:17
Ср ноя 01, 2017 14:04:01
Вт ноя 14, 2017 14:10:34
#define F_CPU 16000000UL
#include "test.h"
int main(void)
{
while (1) {
doNothing();
}
}
#ifndef TEST_H
#define TEST_H
#ifndef F_CPU
#warning "F_CPU not defined for test.h"
#define F_CPU 1000000UL
#endif /* F_CPU */
extern void doNothing(void);
#endif /* TEST_H */
#include "test.h"
void doNothing(void) {}
../test.h:5:4: warning: #warning "F_CPU not defined for test.h"
Вт ноя 14, 2017 16:21:08
Ср ноя 15, 2017 09:23:56
#ifndef F_CPU
#define F_CPU 8000000L
#endif
#include "delay.h"
#include <avr/io.h>
#include "main.h"
#include "lcd_lib.h"
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdio.h>
//Настройка кнопок
#define UP (!(PINB) &(1<<PINB0))
#define DOWN (!(PINB) &(1<<PINB1))
#define TEST_LED_ON (PORTA &=~(1<<PINA0))
#define TEST_LED_OFF (PORTA |=(1<<PINA0))
#define DUTY OCR2
#define PWM_STEP 0x01
#define UPPER_THRESHOLD 0xff
#define LOWER_THRESHOLD 0x00
mcu_init();
sei();
if(!(PINB & (1<<PINB0)) && (DUTY<UPPER_THRESHOLD))
{
TEST_LED_ON;
DUTY=DUTY + PWM_STEP;
timerDelayMs(5);
}
else
{
TEST_LED_OFF;
}
ASSR=0<<AS2;
TCCR2=(1<<WGM20) | (1<<COM21) | (0<<COM20) | (1<<WGM21) | (1<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00;
OCR2=0x00;
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
Ср ноя 15, 2017 10:20:28
Ср ноя 15, 2017 10:48:58
volatile unsigned char test;
test = ((DUTY - PWM_STEP) / 255) * 100;
lcd_gotoxy(0,0);
lcd_num_to_str(test, 4);
Ср ноя 22, 2017 12:15:16
Ср ноя 22, 2017 12:35:57
Ср ноя 22, 2017 12:46:56
Ср ноя 22, 2017 13:02:03
Ср ноя 22, 2017 13:16:13
Ср ноя 22, 2017 14:29:29
ARV писал(а):Если вы перешли на Atmel Studio, то, боюсь, ничего у вас с отладкой в протеусе по шагам или брейкпойнтам не выйдет... AVR-GCC свежее 3.x.x выдает отладочную инфу не так, как понимает протеус...
Ср ноя 22, 2017 14:36:24