Новичок
|
Еще одно подтверждение моей догадки. Если вы оставили нетронутыми фьюзы, некоторые порты остаются нерабочими. (в частности JTAGEN по умолчанию включен, т.е установлен в 0 и при этом ноги PC2-5 абсолютно не будут реагировать на дерганья программой.)
Советую перед заливанием программы очень внимательно ознакомиться с каждым используемым битов фьюзов контроллера. |
||
Оценка
|
Новичок
Регистрация: 26.01.2014
Сообщений: 9
Репутация: 11
![]() |
Здравствуйте, предоставляю свою работу в надежде что вы поможете!!!
/************************************************** *** 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 и некоторых других, фьюзы нужно выставлять зеркально по сравнению с предыдущим списком программ” , а тритоне как, зеркальна или …? ![]() |
||
Оценка
|
Специалист
|
Как вы и говорили в Proteus'e программа ваша работает, так и есть.
По исходнику порты сконфигурированы верно. Судя по скриншоту установок Fuse-битов в программаторе Тритон (т.е. Fuse-биты вы считали с микроконтроллера), никакие изменения вы не делали и микроконтроллер новый с заводскими установками. Если так, то микроконтроллер должен исполнять вашу программу, т.к. при таких установках он работает от внутреннего осциллятора 1 МГц (внешний кварц не нужен и частота сейчас не важна), сигнальные линии используемые интерфейсом JTAG не задействованы (порт C) поэтому отключать его тоже нет необходимости. Все должно работать... Повторюсь, если не меняли Fuse-биты и они сосуществуют скриншоту. Проверяйте правильность собранной схемы и подключения. Кнопку SW6 (PD6) нажали светодиод загорелся, отпустили кнопку - светодиод погас.
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота. |
||
Оценка
|
Новичок
Регистрация: 27.11.2011
Сообщений: 36
Репутация: 15
![]() |
Микроконтроллер случайно не в ресете ? На 9 ножке плюс ?
Акмалхан, какой у вас опыт в радиоэлектронике ? Схема нарисована коряво, и начинающему будет сложно с первого раза собрать правильно. Возможно в этом проблема. |
||
Оценка
|
Новичок
|
Не понимаю зачем вы перед бесконечным циклом вставили "PIND.6=1;"
Для того чтобы включить внутренний подтягивающий резистор нужно было написать "PORTD.6 = 1". Регистры PINx вообще предназначены только для чтения. Если честно для меня показалось очень и очень и ОЧЕНЬ странным то, что после этой операции подтяжка все-таки включилась ![]() ![]() И еще внимательно проверьте правильность собранной схемы. например направление светодиодов, замерьте напряжения во всех точках схемы.
Последний раз редактировалось SlovachevskyDV; 01.02.2014 в 12:04.
|
||
Оценка
|
Новичок
Регистрация: 26.01.2014
Сообщений: 9
Репутация: 11
![]() |
Вы правы SlovachevskyDV там ошибка,хотя после добавления этой строки с PIND.6=1 схема протеусе начала нормально работать, до этого при симуляции светодиод сразу включалась без нажатие кнопки sw6.
Вывод, протеус на такие грубые ошибки не обращает внимание, стоит ли после этого доверят протеусу, что Вы скажете на счет этого дорогие программисты? Ошибку исправлю и попробую, посмотрим что получатся. Спасибо. ![]() |
||
Оценка
|
Новичок
|
Я протезу доверяю цифровые схемы на 80%, аналоговые на 30%
Несколько работающих и продающихся большими партиями проектов почти полностью отладил в этом эмуляторе. Главное тщательно потом проверить проект в железе. |
||
Оценка
|
Новичок
Регистрация: 26.01.2014
Сообщений: 9
Репутация: 11
![]() |
Ребята на схему питание даю с зарядки сот телефона ZTE 5.04 вольт , + VCC 10 ножка, - GND 11, 31 ножку, кнопку на PD6, а на PB2 светодиод через резистор 470 ом Светодиод подключен правильна. К reset у 9 ножке ничего не подсоединяю. Кварц на 12,13 ножки через 22 пикофарадный кон к GND Код программы видели. Схема не работает причину не могу определить
![]() Программирование МК. Быстрый старт.. Что мне нужно? valerik88 что скажите? Толька код программы мне придется писать на CVAVR (си) а не assemblere, программатор тритон будет. Жду от Вас советов, помогите пожалуйста с уважением Акмалхан ![]() |
||
Оценка
|
Новичок
Регистрация: 26.01.2014
Сообщений: 9
Репутация: 11
![]() |
Так, хорошие новости, все заработала как надо, у меня была две ошибки:
1 в пайке между светодиодом и МК рам контакта не била. 2 в настройке fusi, то есть самом окошке включении fuse bits не била установлена галочка,я так думаю что fuse бил отключен. Всем большое спасибо. Я чувствовал себя так, когда перемотал свой первый электродвигатель!!! |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |