Перейти к содержанию

crazz

Рекомендуемые сообщения

Все извиняюсь за глупые вопросы. Я просто вроде все прописал, а у меня не работало и я начал думать а выдает ли у меня АЦП нужные значения. А в итоге оказалось ночью плохо программировать =))) не то значение подставил и все не работало =) Но думаю пусть будут эти вопросы для других начинающих вдруг в поиске нарвуться на эти сообщения.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

:shok: Рисуйте пожалуйста схемы не в протеусе, он для этого очень слабо предназначен. Наглядности никакой, куда там чего у вас идёт -черт ногу сломит. надписи на выводах контроллера тоже ясности не добавляют - там должна быть одна надпись на вывод максимально соответствующая его функции, а не все сразу. А протеус этого не позволяет сделать легко.

лучше карандашом на бумаге схему нарисовать, чем такое.

Есть программа получше - Splan, там хотябы можно любую мелочь подредактировать сразу на месте.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

лучше карандашом на бумаге схему нарисовать, чем такое.

Не лучше! Поверьте мне как дилетанту который рисовал схему первый раз в протеусе =)

Протеус отлично подходит для рисования схемы. Когда рисую карандашом выходит полный треш. чутка ошибешься и все хана, или места не хватает и че делать?=)

А так я мало того что её просто нарисовал и понял что тут с чем связано так я потом еще и смог использовать нарисованную схему для теста программы МК =)

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

да да я выше написал уже что разобрался. я так идумал изначально но когда не работало засомневался а выдает ли у меня ацп нужные значения при замыкании и обрыве.

Ссылка на комментарий
Поделиться на другие сайты

Ещё для проверки можно подключить вместо датчика резистор, равный по сопротивлению R10. В это случае АЦП должен выдать 512 или около того.

Ссылка на комментарий
Поделиться на другие сайты

Вот тут выложил программу http://forum.cxem.net/index.php?showtopic=154873&st=60#comment-2234297

пост номер 76

Изменено пользователем Zombie47
Ссылка на комментарий
Поделиться на другие сайты

Тогда почему в протеусе схема такая кривая и без поясняющих надписей? Выровнял бы хотябы после того как понял что куда идёт. Красивая схема она и для отладки выглядит лучше.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

потому что это первая схема и я рисовал с соблюдение расположения элементов, а потом допиливал и прикручивал МК и дисплей в протеусе, и все соединял проводками хотя там помойму есть так сказать невидимые проводки=)

Ссылка на комментарий
Поделиться на другие сайты

Надо же было причесать схему, так ведь и самому проще было бы.

Но лучше листочка бумаги еще никто не придумал. рисуешь только то что нужно, после второй итерации схема получается значительно лучше.

А в протеусе... замаешься всё перерисовывать - слишком долго мышкой клацать, хоть и расход бумаги меньше. Протеус оправдывает себя только на больших схемах, где на первый план выходит взаимодействие с другими модулями - списки компонентов, проверка по правилам, редактор печатных плат... там где без автоматизации не обойтись. Но рисовать в нём схемы крайне неудобно, редактор схем там чисто формальный.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Но рисовать в нём схемы крайне неудобно, редактор схем там чисто формальный.

:umnik2: о как... все схемы делаю в протезе , неудобства не замечено ... что я делаю не так :unknw:
Ссылка на комментарий
Поделиться на другие сайты

Нормальные схемо-рисовалки не пробовали просто. Нет, ну это надо же додуматься удалять компоненты правой кнопкой мыши...

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

да

можно даже все три

и юарт с компараторами в придачу

СПС мучаюсь ни чкго не получается (

вот говно код

unsigned short cnt;
unsigned short cnt1;

void interrupt() {
cnt++ ;
PIR1.TMR1IF = 0;
TMR1H = 0x80;
TMR1L = 0x00;
}
void interrupt1() {
cnt1++;
TMR0 = 96;
INTCON =0x20;
}

void main() {

OPTION_REG.b5=1 ;	 //

TRISB = 0;
PORTB = 0x00;

TMR0 = 96;             
INTCON =0xA0;         //	Включаем TMR0
cnt1 = 0;

T1CON = 1;				 //   Включаем TMR1
PIR1.TMR1IF = 0;
TMR1H = 0x80;
TMR1L = 0x00;
PIE1.TMR1IE = 1;
INTCON = 0xC0;
cnt = 0;

while (1) {

	if (cnt == 76) {                              //     обработкаTMR1
		PORTB.B4 = ~PORTB.B4;
		cnt = 0;
	}
	 if (cnt1 == 400) {                         //      оброботкаTMR0
		 PORTB.B5 = ~PORTB.B5;
		cnt1 = 0;
	}	}}

Изменено пользователем ДядяСаша
Ссылка на комментарий
Поделиться на другие сайты

для начала полная цитата предыдущего сообщения запрещена П.2.9!!!

вставляете код пользуйтесь тегами CODE панели управления <>

ну и вот это :

void interrupt() {
cnt++ ;
PIR1.TMR1IF = 0;
TMR1H = 0x80;
TMR1L = 0x00;
}
void interrupt1() {
cnt1++;
TMR0 = 96;
  INTCON.B3=1;
}

что ?

попутно указываем язык и компилятор

Ссылка на комментарий
Поделиться на другие сайты

что ?

он не знает как врубить два таймера =)

У него Pic 16f628A

Вроде по даташиту надо врубать два таймера так:

GIE=1;

INTCON = 0b11100000; //таймер 0

T1CON = 0b00110001; //таймер 1

PIE1= 0b00000001; //нужен ли

Проверьте меня ибо у меня тоже нет 100% понимания как их оба врубить. Но я так сказать учусь и это может пригодиться.

Ссылка на комментарий
Поделиться на другие сайты

да причем здесь врубить два таймера...

слово interrupt является зарезервированным компилятором указателем на вектор прерывания , однако ТС использовал его вместо названия функции ...

те имеем две функции interrupt() и interrupt1()

которые в программе ни где не вызываются и благополучно удаляются из кода компилятором на моменте компиляции за ненадобностью...

Ссылка на комментарий
Поделиться на другие сайты

Нарушение правил форума П.2.9 mod:IMXO

Вот вот именно дело в зарезервированной функции interrupt(), как блин обработать два таймера если функция на оброботку одна ((( в итоге у меня и получается либо этот либо тот, поэтому и был вопрос о включении сразу двух. Итог крывая среда разработки (((

Ссылка на комментарий
Поделиться на другие сайты

как блин обработать два таймера если функция на оброботку одна

посмею предположить что в функции interrupt проверяется флаг того или иного таймера. и выполняется нужный код.

Ссылка на комментарий
Поделиться на другие сайты

именно

/* подпрограмма обработки прерываний */
void interrupt timers_isr(void)
{
if (T0IF)
{
 T0IF=0;
// обработка прерывания по TMR0
}
if (TMR1IF)
 {
 TMR1IF=0;
// обработка прерывания по TMR1
 }

}

в случае отключения прерываний дополнительно проверяется и их разрешение

if (T0IE&&T0IF)
{
 T0IF=0;
// обработка прерывания по TMR0
}

Итог крывая среда разработки (((

да не..е это кто-то мануалы не читает....
Ссылка на комментарий
Поделиться на другие сайты

СПС получилось !!!

void interrupt() {

if ( T0IF_bit ==1){

cnt++;

GIE_bit = 1;

PEIE_bit = 1;

T0IE_bit=1; }

...

Флаг T0IF_bit не сбрасывается, зато зачем-то взводятся GIE_bit, PEIE_bit и T0IE_bit...

...

да не..е это кто-то мануалы не читает....

+100

Изменено пользователем shindbad
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...