Приветствую Вас, Гость! Регистрация RSS

Вторник, 22.08.2017
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 3 из 9«1234589»
Форум » Форум mega-avr.ucoz.ru » Вопросы начинающих » первые вопросы (кто собрал программатор, вставил мк- а он не работает)
первые вопросы
АвторДата: Пятница, 01.10.2010, 19:07 | Сообщение # 41
Автор сайта
Сообщений: 200
Репутация: 3
Город: Омск
Статус: Отсутствует
Желательно под рукой иметь осциллограф или частотомер, чтобы точно сделать нужную частоту.


_____________________________________________________________
Радиоэлектроника и Программирование занимательная штука...
 
gorrec41Дата: Вторник, 09.11.2010, 15:56 | Сообщение # 42
Заглянувший
Сообщений: 1
Репутация: 0
Город: Киров
Статус: Отсутствует
обьясните тормозу почему не включаются диоды

Code
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date : 09.11.2010
Author : F4CG
Company : F4CG
Comments:

Chip type : ATmega16
Program type : Application
Clock frequency : 4,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/

#include <mega16.h>

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=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=T State1=0 State0=0
PORTA=0xff;
DDRA=0b0000011;

// Port B 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
PORTB=0x00;
DDRB=0x00;

// 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: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 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: Timer 2 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;

while( 1 )
{
if( PINA.3==0 ){
PORTA.0=1;
} //вкл диод
if( PINA.2==0 )
{
PORTA.1=0;
} //вкл диод

};

}
 
us4ilqДата: Вторник, 09.11.2010, 20:48 | Сообщение # 43
Опытный
Сообщений: 173
Репутация: 2
Город: Донецк
Статус: Отсутствует
Я конечно тоже програмист "ЕЩЕ ТОТ". Ну что то вроде Вас biggrin
Но мне кажется что прежде всего надо задержки поставить, чтобы успеть что то увидеть.
Ведь процык у Вас работает я думаю на 1мгц или больше.

А вообще то надо сразу и схему включения выкладывать.

Сообщение отредактировал us4ilq - Вторник, 09.11.2010, 20:50
 
АвторДата: Среда, 10.11.2010, 19:49 | Сообщение # 44
Автор сайта
Сообщений: 200
Репутация: 3
Город: Омск
Статус: Отсутствует
Виталий попробуй так:

#include <mega16.h>

void main( void )
{
DDRA=0x03; //0b00000011
PORTA=0xff; //0b11111111

while( 1 )
{
if( PINA.2==0 ) { PORTA.0=1; } //вкл диод
if( PINA.3==0 ) { PORTA.1=1; } //вкл диод
};
}

Кстати, у тебя электронная обвязка ( цепь сброса, кварц с конденсаторами, цепь питания ) микроконтроллера правильно сделана?



_____________________________________________________________
Радиоэлектроника и Программирование занимательная штука...
 
DenisДата: Четверг, 06.01.2011, 02:41 | Сообщение # 45
Любопытный
Сообщений: 116
Репутация: 1
Город: Москва
Статус: Отсутствует
Всем привет! помогите плиз что-то с фьюзами накрутил и теперь программатор контроллер не видит, что делать?(Mega16)
 
DenisДата: Четверг, 06.01.2011, 02:44 | Сообщение # 46
Любопытный
Сообщений: 116
Репутация: 1
Город: Москва
Статус: Отсутствует
на картинки показано где примерно крутил.
Файл: 0313285.jpg(5Kb)
 
ilvzДата: Четверг, 06.01.2011, 03:52 | Сообщение # 47
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
Если кварца нет, то и не увидит. Надо или кварц или внешнюю частоту. Все CKSEL=1 соответствует тактированию от внешнего кварцевого резонатора частотой не менее 1-3Мгц. Внешнюю частоту подавать на XTAL1. Можно попробовать прикоснуться пальцем к этому выводу и в это время перепрошить фьюзы("на наводках"). Но это уже почти криминал =).
 
DenisДата: Четверг, 06.01.2011, 04:35 | Сообщение # 48
Любопытный
Сообщений: 116
Репутация: 1
Город: Москва
Статус: Отсутствует
у меня стоит внешний кварц на 8 и нечего не выходит!
 
ilvzДата: Четверг, 06.01.2011, 13:09 | Сообщение # 49
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
То, что видно выглядит нормально. Приведи все фьюзы. А лучше всё таки подавать частоту.

Добавлено (06.01.2011, 13:09)
---------------------------------------------
CKPOT - птичка желательна. Это отвечает за размах напряжения на генераторе.

 
DenisДата: Четверг, 06.01.2011, 15:18 | Сообщение # 50
Любопытный
Сообщений: 116
Репутация: 1
Город: Москва
Статус: Отсутствует
Всё я походу окончательна убил его!

Поставил новый!
Мог бы кто нибудь показать на картинке как выставить фьюзы в CodeVision AVR для AtMega16 на 8 Мнz (Кварц внешний!!!)

В заранее спасибо!

 
us4ilqДата: Четверг, 06.01.2011, 20:21 | Сообщение # 51
Опытный
Сообщений: 173
Репутация: 2
Город: Донецк
Статус: Отсутствует
http://roboforum.ru/viewtopic.php?f=2&t=6106&
Здесь посмотри.

А вообщето "Гугль" по запросу" фьюзы" находит кучу информации.

или еще здесь
http://roboforum.ru/viewtopic.php?f=18&t=3139&start=45

Добавлено (06.01.2011, 20:21)
---------------------------------------------
Так ведь и на этом сайте есть :
тема - FuseCalk

---------------------------------------------------

К стати, я восстанавливал М16 подачей внешнего такта от внешнего генератора (сделал специально на К155ЛА3)
При программировании в "ПониПрог"

Сообщение отредактировал us4ilq - Четверг, 06.01.2011, 20:35
 
DenisДата: Пятница, 07.01.2011, 01:32 | Сообщение # 52
Любопытный
Сообщений: 116
Репутация: 1
Город: Москва
Статус: Отсутствует
Если не затруднит покажи наглядно, а то я уже совсем запутался!)
 
ilvzДата: Пятница, 07.01.2011, 12:36 | Сообщение # 53
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
А путаться и нечего. КОНКРЕТНО. Сними галочки со всего кроме CKPOT(надёжная работа кварца на больших размахах напряжения). Везде где ГАЛОЧЕК НЕТ - это НЕ ЗАПРОГРАММИРОВАННО. Т.е 1.
После однократной записи Фъюзов, отключи отключи их программирование совсем. Для исключения сдучайностей, пока не разберёшся.

Добавлено (07.01.2011, 12:36)
---------------------------------------------
Вот:

Сообщение отредактировал ilvz - Пятница, 07.01.2011, 12:32
 
ilvzДата: Пятница, 07.01.2011, 12:45 | Сообщение # 54
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
-

Добавлено (07.01.2011, 12:45)
---------------------------------------------
А ещё рекомендую поставить прошивку на автомат. В CVAVR меню Project->Configure->After Build поставить птичку Program the Chip и установить фьюзы. После чего программатор будет вызываться сразу после компиляции автоматически.

Файл: fus1.bmp(128Kb)
 
DenisДата: Пятница, 07.01.2011, 19:20 | Сообщение # 55
Любопытный
Сообщений: 116
Репутация: 1
Город: Москва
Статус: Отсутствует
Теперь все делать стало быстрей и удобней!)))
Спасибо!))

Добавлено (07.01.2011, 19:20)
---------------------------------------------
подскажите а как вывести на графический LCD число?

Я делаю так:

Code
display_putchar( i/10+0x30,0,0,0 );   
display_putchar( i%10+0x30,1,0,0 );

но это для двух знаковых чисел!
А как мне сделать для 3,4 или 5 знаковых чисел?


Сообщение отредактировал Denis - Пятница, 07.01.2011, 19:20
 
ilvzДата: Пятница, 07.01.2011, 20:25 | Сообщение # 56
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
Можно через функцию sprinf() из stdio.h. Это самый тяжелый (в смысле размера программы) путь. Второй полегче и проще.
Функция itoa(integer, string*, ) stdlib.h Ну и самостоятельно, по практически уже реализованному тобой алгоритму. Подумай. В цикле деля на 10 и мод (%) 10. Можно и линейно. В хелпе описание функций есть.
 
DenisДата: Пятница, 07.01.2011, 22:19 | Сообщение # 57
Любопытный
Сообщений: 116
Репутация: 1
Город: Москва
Статус: Отсутствует
ilvz,
что-то пока не особо получается!(
 
ilvzДата: Пятница, 07.01.2011, 22:38 | Сообщение # 58
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
В строковую переменную справа налево заносим мод(%) 10 искомого числа + '0' (это что-бы в цифру символ превратить). Число делим на 10. И т.д. 5 раз.
Напр:
12345 % 10 =5
12345 / 10=1234
1234 % 10 = 4 и т.д.
Каждый раз проверяя не равно ли число нулю. И если равно то записываем в позицию ' '. Иначе из числа 12 получится 00012
Потом полученное выводим на дисплей слева направо.
Добавлено (07.01.2011, 22:38)
---------------------------------------------
Так можно и лонг обрабатывать.


Сообщение отредактировал ilvz - Пятница, 07.01.2011, 23:05
 
DenisДата: Суббота, 08.01.2011, 04:22 | Сообщение # 59
Любопытный
Сообщений: 116
Репутация: 1
Город: Москва
Статус: Отсутствует
Можете считать меня тупицей но я не понял!
ilvz,
Вас не затруднит более подробно рассказать как это правильно делать?

Спасибо за понимание!

 
АвторДата: Суббота, 08.01.2011, 13:53 | Сообщение # 60
Автор сайта
Сообщений: 200
Репутация: 3
Город: Омск
Статус: Отсутствует
Denis, какое именно число ты хочешь вывести ( ацп, ds18b20 и т.д. )?


_____________________________________________________________
Радиоэлектроника и Программирование занимательная штука...
 
Форум » Форум mega-avr.ucoz.ru » Вопросы начинающих » первые вопросы (кто собрал программатор, вставил мк- а он не работает)
Страница 3 из 9«1234589»
Поиск: