Jump to content

Ну очень странное поведение ATmega2560


Vit@lik
 Share

Recommended Posts

Здравствуйте, пишу программу на АТмега2560. И возникла очень странная проблема.
Код такой:

#define F_CPU 16000000

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stddef.h>
#include <math.h>
#include <avr/eeprom.h>
#include <avr/wdt.h>

//#include "timer.h"
//#include "Output_devices/status_led.h"

int main(void){
	cli();
	//status_led_init();
	DDRB |= (1<<PB6);
	//timer0_init();
	//timer2_init();
	TIMSK0 |= (1<<TOIE0); // enable timer 0 overflow interrupt
	TCCR0B |= (1<<CS00) |(1<<CS01); // set timer 0 prescaler factor to 64
	sei();
	
	PORTB |= (1<<PB6);
	_delay_ms(200);
	PORTB &= ~(1<<PB6);
	_delay_ms(200);
	PORTB |= (1<<PB6);
	_delay_ms(200);
	PORTB &= ~(1<<PB6);
	_delay_ms(200);
	PORTB |= (1<<PB6);
	_delay_ms(200);
	PORTB &= ~(1<<PB6);
	
    while (1) {		
	}//while1
	
}

Внешний кварц 16мгц на XTAL1 и XTAL2.
На заводских фюзах работает.
Но на фюзах взятых из арудино мега не работает. Светодиод на PB6 просто светится непрерывно. Но если закомментировать инициализацию таймера-0 работает. Как это? В чем проблема?

Screenshot_7.png

Screenshot_8.png

Edited by Vit@lik
Link to comment
Share on other sites

Выяснил, проблема была в фьюзе BOOTRST. 
Но при чем здесь инициализация таймера и почему светился светодиод?...

Link to comment
Share on other sites

Секреты депассивации литиевых батареек FANSO EVE Energy
При длительном хранении в литиевых ХИТ происходит процесс пассивации. Он обратим, однако информации о том, как это правильно организовать, практически нет. Известный производитель батареек FANSO EVE Energy делится рекомендациями, как активировать первичный литиевый элемент питания.

Читать статью >>

Прерывание таймера разрешили, а самого тела прерывания нет. Поэтому происходит постоянный перезагруз МК. Сам светодиод включается при инициализации порта, далее первая же задержка не успевает отработать, как наступает событие прерывания. МК выбрасывает в таблицу прерываний за инструкцией перехода на обработчик, а его нет(!!!). Происходит смещение по куче NOP и МК попадает опять на начало программы, т.е. опять инициализация и включение светодиода... И так по кругу.

Link to comment
Share on other sites

Сравнительное тестирование алкалиновых батареек POWER FLASH 

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

Провели небольшой сравнительный тест, чтобы понять, могут ли источники тока POWER FLASH эффективно заменить продукцию таких известных производителей, как Duracell и GP, вычислить, чему равна стоимость одного часа работы батареек, а также сравнить полученные данные со значениями, указанными в технической документации.  Подробнее>>

5 часов назад, Геннадий сказал:

а самого тела прерывания нет

ISR(TIMER0_OVF_vect){
	/*
	timer0_millis += 1;
	timer0_fract += 3;
	if (timer0_fract >= 125) {
		timer0_fract -= 125;
		timer0_millis += 1;
	}
	timer0_overflow_count++;
	*/
}

Есть. Но это ни на что не влияло и ничего не изменило. Пытался включить светодиод в прерывании но он не включался такое впечатление что оно не вызвалось вообще.
Я перепробовал все варианты, прежде чем писать сюда.

Link to comment
Share on other sites

Новые источники питания на DIN-рейку класса High End от MORNSUN
Компания MORNSUN разработала новую линейку ИП с креплением на DIN-рейку класса High End. Линейка состоит из двух семейств однофазных ИП, различающихся функционалом (LIMF и LIHF) и одного семейства на трехфазное напряжение (LITF). У всех этих ИП печатная плата с компонентами имеет лаковое покрытие. Продукция работоспособна в температурном диапазоне -40...85ºС (для однофазных) и -30...70ºС (для трехфазных). Кроме того, однофазные ИП соответствуют требованиям ATEX и могут использоваться во взрывоопасных зонах. Семейство LIMF имеет стандартный функционал (ККМ, сухой контакт реле, 150% перегрузочная способность), а семейство LIHF – максимальный функционал с доп. функциями селективной защиты (SFB) и возможностью дистанционного управления (может заменить серию QUINT от Phoenix Contact).

Подробнее >>

19 минут назад, korsaj сказал:

TCCR0A и TIFR0

а что с ними нужно делать? TIFR кажется сам выставляется. А в TCCR0A ничего не нужно настраивать

Link to comment
Share on other sites

А вы уверены что TCCR0A  после сброса мк будет равен 0 или в регистре TIFR0 не будет взведет какой нибудь флаг?

Спойлер


 

.cseg
.org	0
	rjmp	Start	; Ïåðåõîä íà Start ïî ñáðîñó

.org	OVF0addr	; Timer/Counter0 Overflow
	rjmp	Timer0Ovf
;----------------------------------------------------
Timer0Ovf:
	inc		r16
	cpi		r16, 0x14
	brne	ExirTimer0Ovf
	clr		r16
		
	sbic	PORTB, PB0
	rjmp	ClrPortbit
	sbi		PORTB, PB0
	reti

ClrPortbit:
	cbi		PORTB, PB0
ExirTimer0Ovf:
	reti

;----------------------------------------------------
Start:
	ldi		r16, 0
	out		PORTB, r16

	ldi		r16, 0xFF
	out		DDRB, r16

	ldi		r16, 0
	out		TCCR0A, r16

	ldi		r16, (1<<CS00) |(1<<CS01)
	out		TCCR0B, r16

	ldi		r16, 1<<TOIE0
	sts		TIMSK0, r16

	ldi		r16, 0xFF	
	out		TIFR0, r16

	clr		r16

	sei
;----------------------------------------------------
Loop:
	rjmp Loop
;----------------------------------------------------


 

Edited by korsaj
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Сообщения

    • Да, это измерительные маркеры. Судя по "0,368" при 1 мс/дел и двух делениях между точками, чего-то в развёртке всё-таки сбито. Не видно, сколько при этом мс/дел выставлено. Если 5 мс/дел. - то даже почти и откалиброван получается... Хотя как 5 мс/дел. можно выставить? Там же кнопки с множителем "5" нет. Чего-то опять фигня какая-то...  Какая развёртка была выставлена? Чего-то больше похоже, что кнопки "10us", "1 ms", "", 100 ms" и "x10" - это не сколько на деление, а множитель к измеренному числу. Нормального Руководства по эксплуатации к нему, я так понимаю, нет? Тогда чтобы точнее разобраться, надо бы иметь ещё хотя бы парочку точно известных частот в районе единиц и сотен кГц.   Это строб-эффект. Цифры тем же лучом рисуются, переключая его туда-сюда. При малых скоростях развёртки это становится на глаз заметно.
    • Пацаны из LT как раз математику хорошо знают и калькулятор считает без ошибок, а вот то, что вы там намоделировали в нем - большой вопрос. Мало иметь калькулятор, надо еще уметь им правильно пользоваться.  Вот вам мой калькулятор. Всеми известный усь класса АВ - Ланзар. Ток покоя 55 мА. Выходная мощность 100, 50 и 10 Вт.  Выходная = 101 Вт, потребляемая усилителем = 149 Вт, КПД = 101/149=68% Выходная = 50 Вт, потребляемая усилителем = 106 Вт, КПД = 50/106=47%   Выходная = 10 Вт, потребляемая усилителем = 51 Вт, КПД = 10/51=20% Внезапно оказывается, что рассеиваемая таки зависит от выходной. А может ты думаешь, что калькуляторы с ошибками считают? Или пацаны из National Instrumens не знают математику? 
    • в низковольтной части все номиналы соответствуют норме. у тлки нет обвязки(включена как ион, катод и реф замкнуты). на и вообще низковольтная часть не пострадала, кроме вых диода. а вот силовая почти вся погорела. по Vstr(6 нога) все ок.   транзистор менял тоже. и обе емкости по Vcc. по срисовке я и правда ошибся(перерисовал). вместо R103 у меня стоят два параллельно по 43кОм(2w) и последовательно им 2 smd, которые уже не опознать (выгорели в хлам). Согласно даташиту поставил еще 2 по15кОм. в сумме 56кОм
    • Вот, до самого дошло же, в обычной практике такие напряжения нафиг не нужны, потому никто и не делает. А в тех редких случаях, когда нужны, можно соединить два блока питания последовательно (или собрать два независимых БП в одном корпусе - так даже в профессиональных блоках делают). И не нужны никакие высоковольтные детали и прочие ухищрения.
    • Сигнал от сетевого трансформатора 50 Гц, цифра на экране 20, подозреваю что это миллисекунды (видно две точки ближе к вершинам) тут еще странность заметил когда выбрано время развертки 100ms то полоса развертки становится прирывистой и быстро бежит слева на право, и если есть сигнал он тоже начинает мигать. поэтому на фотографии как бы сигнал не прорисован, на самом деле он мигает. а вот когда время выбрано 1ms или 10us такого нет, полоса четкая и сигнал четкий, это неисправность или на низких частотах нормальное поведение?
    • Присмотритесь на платы которые он опубликовал совместно со схемой. Если вы смогли бы внимательно их проверить на соответствие (и автор на то указывал сразу), то смогли бы заметить ещё тогда, что разница была бы существенной. Обратите внимание. Индуктивность первичной обмотки 176мкГн, вторичной обмотки 6мкГн. Легко проверить. Витки первички =13+19=32вит. Проверяем. 176мкГн делим на 32 в квадрате и умножаем на 6 витков вторички в квадрате получаем примерно 6,2мкГн. Соответствует коэффициенту трансформации даже при ручном расчете. Хотя, почему то, автор указал 5,5 витков, и как это возможно в обратноходом преобразователе ... Что намотано у вас, согласно строго исполняемой схеме, не понятно, и не указано вами. Вы ведь придерживались именно её? Имея готовый магнитопровод с зазором 1,3мм, автор, видимо, указал зазор только по центральному керну. Зазор 1,3мм готовый в одном из половинке магнитопровода (технологический в ТПИ-4-3) и плюс ещё 0,4мм - такой же зазор, он же добавляется автоматически в двух крайним по бокам того же магнитопровода. Тогда суммарный зазор по магнитопроводу =1,3+0,4+2*0,4=2,5мм Сходится примерно с индуктивностью как первички так и вторички указанной автором. Зачем он такой большой для выбранной мощности - на совести автора. Программа Старичка подказывает, что достаточно и имеющегося уже с запасом. Материал магнитопровода в программе выбран не М3000НМС, а имеющийся и худший, в сравнении с реальным по потерям на такой частоте. Идем дальше. Сопротивление датчика тока. Ни как не подходит в расчете со схемой, но ближе к элементной базе на плате автора 0,3/2=0,15 Ом. Мы имеем дело все таки с токовым контроллером и как правило амплитуда напряжения ограничения напряжения на шунте при макс. мощности и мин. напряжении питания не должна превышать 70-80% амплитуды ограничения ширины управляющих импульсов (1В для такого типа котроллера). Автор добавил в схеме С22. Возможно так он решил исправить проблемы ОС с помощью подмешивании пилы генератора на токовый вход, когда необходимо стабильное управление ОС при малом заполнении управляющего сигнала - когда стабилизация тока и напряжения выставленны на мин. уровень. Но на авторской плате его нет. Но на плате есть разведенная емкость 0,1мкФ между выводами 1 и 5 контроллера (параллельно выводам оптопрары DA1) в помощь ОС. Параллельно RCD снабберу (на схеме R8, C9, VD10) первичной обмотке на плате автора стоит сапрессор (1,5КЕ200) в помощь последнему. Есть и еще один на плате (1,5КЕ420) последовательно с указанным снаббером. Решения такого не встречал - честно признаюсь, но суммарно по характеристикам получается они ограничивают максимальное напряжение на управляющем ключе. Интересное решение! Скорее всего автор тут экспериментировал, но не отразил это в схеме ни как. Смотрим дальше на ваши скрины с ослика. При закрытии ключа, амплитуда на нем (без учета выброса от индуктивности рассеивания в начальный момент) равна 600В (примерно). Эта амплитуда напряжения должна быть равна амплитуде выпрямленного сетевого напряжения + выходное напряжение умноженное на коэффициент трансформации (или соотношения первичной и вторичной обмотки). А это, предположим, 230В в розетке умноженное на корень из двух + 24В выходного напряжения умноженное на 32вит/6вит, что в итоге равно 453В. Что же там у вас намотано тогда? Приложу вам и известный документ для самостоятельного разбирательства Flyback-R01.pdf. Не зайдет с первого раза - совет, прочитайте его еще раз. У вас есть готовый преобразователь и ослик - т.е. кому как не вам! Это однозначно сократит объем вопросов на тут потом. Ведь и один конденсатор, сразу после выходного диода при выходном токе в 7А не справится долго ... Обратите внимание и на то, что автор не правильно (не относится к плате) указал на схеме где подключена земля сдвоенного ОУ относительно шунта. Возможно на схеме есть и еще ошибки. Для решения вашей задачи, вам, так или иначе, необходимы мин. понятия как работает обратноходовый преобразователь. Это только поможет в дальнейшем
  • Similar Content

×
×
  • Create New...