Смарт-ЭК - поставщик алюминиевых корпусов LinTai

Программирование Atmega32 на C

Страница 2 из 3
Новичок
 
Регистрация: 22.10.2012
Адрес: Украина, Донецк
Сообщений: 17
Репутация: 14
4 4
0 0
Отправить сообщение для SlovachevskyDV с помощью ICQ Отправить сообщение для SlovachevskyDV с помощью Skype™
 
29.01.2014 10:51 #11
Еще одно подтверждение моей догадки. Если вы оставили нетронутыми фьюзы, некоторые порты остаются нерабочими. (в частности JTAGEN по умолчанию включен, т.е установлен в 0 и при этом ноги PC2-5 абсолютно не будут реагировать на дерганья программой.)
Советую перед заливанием программы очень внимательно ознакомиться с каждым используемым битов фьюзов контроллера.
Оценка
Новичок
 
Регистрация: 26.01.2014
Сообщений: 9
Репутация: 11
1 0
0 0
 
31.01.2014 21:30 #12
Здравствуйте, предоставляю свою работу в надежде что вы поможете!!!

/************************************************** ***
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date : 21.09.2004
Author : NeVaDa
Company : Se7enTEAMS
Comments:


Chip type : ATmega32L
Program type : Application
AVR Core Clock frequency: 4,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 512
************************************************** ***/

#include <mega32.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1
PORTB=0xFF;
DDRB=0xFF;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;


PIND.6=1;
while (1)
{if (PIND.6==0)
PORTB.2=0;
else
PORTB.2=1;

// Place your code here

};
}

“запрограммированный фьюз=0, а не запрограммированный=1. В программах Algorithm Builder, UniProf фьюзы выставляются одним образом, а в программах PonyProg,CodeVisionAVR, AVR Studio, SinaProg и некоторых других, фьюзы нужно выставлять зеркально по сравнению с предыдущим списком программ” , а тритоне как, зеркальна или …?
Вложения
Тип файла: rar Proteus.rar (40.9 Кб, 0 просмотров)
Тип файла: rar настройка Fuse.rar (37.7 Кб, 0 просмотров)
Тип файла: rar Новая папка.rar (48.5 Кб, 0 просмотров)
Оценка
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,175
Записей в дневнике: 22
Репутация: 424
412 89
0 0
Отправить сообщение для Vadzz с помощью ICQ
 
01.02.2014 00:42 #13
Как вы и говорили в Proteus'e программа ваша работает, так и есть.
По исходнику порты сконфигурированы верно.

Судя по скриншоту установок Fuse-битов в программаторе Тритон (т.е. Fuse-биты вы считали с микроконтроллера), никакие изменения вы не делали и микроконтроллер новый с заводскими установками. Если так, то микроконтроллер должен исполнять вашу программу, т.к. при таких установках он работает от внутреннего осциллятора 1 МГц (внешний кварц не нужен и частота сейчас не важна), сигнальные линии используемые интерфейсом JTAG не задействованы (порт C) поэтому отключать его тоже нет необходимости. Все должно работать...

Повторюсь, если не меняли Fuse-биты и они сосуществуют скриншоту.

Проверяйте правильность собранной схемы и подключения.

Кнопку SW6 (PD6) нажали светодиод загорелся, отпустили кнопку - светодиод погас.
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Оценка
Новичок
 
Регистрация: 27.11.2011
Сообщений: 36
Репутация: 15
4 0
0 0
 
01.02.2014 02:47 #14
Микроконтроллер случайно не в ресете ? На 9 ножке плюс ?
Акмалхан, какой у вас опыт в радиоэлектронике ?
Схема нарисована коряво, и начинающему будет сложно с первого раза собрать правильно. Возможно в этом проблема.
Оценка
Новичок
 
Регистрация: 26.01.2014
Сообщений: 9
Репутация: 11
1 0
0 0
 
01.02.2014 07:02 #15
Спасибо, на схему питание даю с зарядки сот телефона ZTE 5.4 вольт , + VCC, - GND, кнопку на PD6, а на PB2 светадиоl через резистор 470 ом на GND
Оценка
Новичок
 
Регистрация: 22.10.2012
Адрес: Украина, Донецк
Сообщений: 17
Репутация: 14
4 4
0 0
Отправить сообщение для SlovachevskyDV с помощью ICQ Отправить сообщение для SlovachevskyDV с помощью Skype™
 
01.02.2014 11:58 #16
Не понимаю зачем вы перед бесконечным циклом вставили "PIND.6=1;"
Для того чтобы включить внутренний подтягивающий резистор нужно было написать "PORTD.6 = 1". Регистры PINx вообще предназначены только для чтения. Если честно для меня показалось очень и очень и ОЧЕНЬ странным то, что после этой операции подтяжка все-таки включилась хз может в реальной жизни такое неявное указание не катит...

И еще внимательно проверьте правильность собранной схемы. например направление светодиодов, замерьте напряжения во всех точках схемы.
Последний раз редактировалось SlovachevskyDV; 01.02.2014 в 12:04.
Оценка
Новичок
 
Регистрация: 26.01.2014
Сообщений: 9
Репутация: 11
1 0
0 0
 
01.02.2014 13:27 #17
Вы правы SlovachevskyDV там ошибка,хотя после добавления этой строки с PIND.6=1 схема протеусе начала нормально работать, до этого при симуляции светодиод сразу включалась без нажатие кнопки sw6.
Вывод, протеус на такие грубые ошибки не обращает внимание, стоит ли после этого доверят протеусу, что Вы скажете на счет этого дорогие программисты?
Ошибку исправлю и попробую, посмотрим что получатся.
Спасибо.
Оценка
Новичок
 
Регистрация: 22.10.2012
Адрес: Украина, Донецк
Сообщений: 17
Репутация: 14
4 4
0 0
Отправить сообщение для SlovachevskyDV с помощью ICQ Отправить сообщение для SlovachevskyDV с помощью Skype™
 
02.02.2014 01:14 #18
Я протезу доверяю цифровые схемы на 80%, аналоговые на 30%
Несколько работающих и продающихся большими партиями проектов почти полностью отладил в этом эмуляторе. Главное тщательно потом проверить проект в железе.
Оценка
Новичок
 
Регистрация: 26.01.2014
Сообщений: 9
Репутация: 11
1 0
0 0
 
03.02.2014 03:19 #19
Ребята на схему питание даю с зарядки сот телефона ZTE 5.04 вольт , + VCC 10 ножка, - GND 11, 31 ножку, кнопку на PD6, а на PB2 светодиод через резистор 470 ом Светодиод подключен правильна. К reset у 9 ножке ничего не подсоединяю. Кварц на 12,13 ножки через 22 пикофарадный кон к GND Код программы видели. Схема не работает причину не могу определить. Остается вреди толка фьюзи на тритоне правильна настроить, может подскажете конкретна куда галочку поставить. А может мне приобрести Attyni2313 и с ним по экспериментировать, как автор темы
Программирование МК. Быстрый старт.. Что мне нужно? valerik88
что скажите? Толька код программы мне придется писать на CVAVR (си) а не assemblere, программатор тритон будет. Жду от Вас советов, помогите пожалуйста с уважением Акмалхан
Оценка
Новичок
 
Регистрация: 26.01.2014
Сообщений: 9
Репутация: 11
1 0
0 0
 
03.02.2014 09:35 #20
Так, хорошие новости, все заработала как надо, у меня была две ошибки:
1 в пайке между светодиодом и МК рам контакта не била.
2 в настройке fusi, то есть самом окошке включении fuse bits не била установлена галочка,я так думаю что fuse бил отключен.

Всем большое спасибо. Я чувствовал себя так, когда перемотал свой первый электродвигатель!!!
Оценка
Ответ
Страница 2 из 3
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Часовой пояс GMT +3, время: 09:05.
Обратная связь РадиоЛоцман Вверх