.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;
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;
В многообразии литиевых батареек и аккумуляторов нет какого-то универсального или идеального варианта. Выбирая тот или иной вариант для питания устройства, разработчику приходится оперировать множеством параметров, используя наиболее оптимальное их сочетание для каждого приложения. Разберем параметры для различных приложений.
Сделал все как сказали , изменил состояние выхода компаратора с «1» на «0» в протеусе сделал точ точ как на видео, у меня не входит в прерывания и все. Че за хрень не знаю чуть поже выложу видео. Большое спасибо за видео. Вот видео с протеуса: https://drive.google.com/open?id=0B997q ... 1A3d3dRd1U
Последний раз редактировалось strengerst Ср ноя 01, 2017 13:55:16, всего редактировалось 1 раз.
Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. EVE является поставщиком аккумуляторных элементов круглого формата для электрических моделей автомобилей.
Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного.
Сделал все как сказали , изменил состояние выхода компаратора с «1» на «0» в протеусе сделал точ точ как на видео, у меня не входит в прерывания и все. Че за хрень не знаю чуть поже выложу видео. Большое спасибо за видео.
Народ, подскажите пожалуйста, чё я не так делаю (я только учусь)! Использую AVR Studio 4.19. Пытаюсь вынести функции в отдельный .c файл, при этом объявляя их в отдельном подключаемом заголовочном .h файле. Получается конструкция примерно такого вида (упрощённо для примера): main.c
Код:
#define F_CPU 16000000UL #include "test.h" int main(void) { while (1) { doNothing(); } }
test.h
Код:
#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 */
tect.c
Код:
#include "test.h" void doNothing(void) {}
Вот почему теперь, после попытки компиляции, получаю варнинг:
Код:
../test.h:5:4: warning: #warning "F_CPU not defined for test.h"
Не смотря на то, что в main.c я определил F_CPU ? Надо полагать, что и нужную частоту (16МГц), заданную в main.c, компилятор тоже не задействовал, а использовал дефолтную 1МГц из test.h ? Как правильно поступать в таком случае? Как грамотно компилировать код из разных исходных файлов?
В main.c оппределил. Но ругается не при компиляции main.c а при компиляции test.c!!!
В си раздельная компиляция: т.е. когда компилируется test.c, компилятор ничего не знает про другие исходники (про ваш main.c). Если надо константу (или еще что-то) иметь во многих *.c файлах, выносите ее в h-файл и этот h-файл включайте где надо: в Вашем случае, test.h включается и в main.с и test.c, если определите F_CPU в test.h, то в обоих исходниках (и в main.с и в test.c) F_CPU будет определена.
Заголовок сообщения: Re: AVR studio в вопросах и ответах
Добавлено: Ср ноя 15, 2017 09:23:56
Мучитель микросхем
Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Ср янв 26, 2011 13:43:30 Сообщений: 414 Откуда: С того берега моря
Рейтинг сообщения:0
Всем привет. Ребята что-то туплю с ШИМ. Сдела простую програмку, которая изменяет регистр OCR2 в Atmega16 и выводит на 1602. Все работает, только как-то не получается отмасштабировать значение 0 -255 в 0 - 100%.
Мне нужно OCR2 / OCR2 * 100 что бы перевести в проценты? Или я что-то не правильно понимаю?
_________________ - Бежит этот подлец-электрон, а вокруг его масса (аж 10 в 23й) штук ионов кремния и 10 в 15й ионов примеси и он, подлец, взаимодействует!
Да да, я это и имел ввиду. Но такой момент, на экране через задержку сразу 100 или 0. Т.е нет ступенчатого изменения с дискретностью 1. Или создать отдельную переменную, и туда записать что-то вроде
_________________ - Бежит этот подлец-электрон, а вокруг его масса (аж 10 в 23й) штук ионов кремния и 10 в 15й ионов примеси и он, подлец, взаимодействует!
Заголовок сообщения: Re: AVR studio в вопросах и ответах
Добавлено: Ср ноя 22, 2017 12:15:16
Прорезались зубы
Зарегистрирован: Ср янв 06, 2010 22:02:25 Сообщений: 210 Откуда: Уфа сити
Рейтинг сообщения:0
добрый день. вопрос может немного не в тему... короче решил я поковыряться с ардуиной. как известно, родная ее среда очень убога в плане разработки, поэтому по старой памяти перешел на atmel studio (лет 5 назад было дело занимался железками на мегах8). так вот гружу свой elf в протеус, а он из всего кода дает ставить брекпоинты только в несокльких местах и то на выходе из функции. что я делаю не так?
_________________ Что в цивилизованном мире называют "устаревшие технологии", в России зовется "технологии, проверенные временем"
Если вы перешли на Atmel Studio, то, боюсь, ничего у вас с отладкой в протеусе по шагам или брейкпойнтам не выйдет... AVR-GCC свежее 3.x.x выдает отладочную инфу не так, как понимает протеус...
Можете попробовать отключить оптимизацию, но и это, скорее всего не поможет, тем более что и памяти может в этом случае не хватить...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Если вы перешли на Atmel Studio, то, боюсь, ничего у вас с отладкой в протеусе по шагам или брейкпойнтам не выйдет... AVR-GCC свежее 3.x.x выдает отладочную инфу не так, как понимает протеус...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения