Страница 8 из 132

Добавлено: Вт дек 18, 2007 17:47:56
Степаныч
Спасибо!Идея ясна!Пойду эксперементировать!А 12 секунд получается когда контроллер работает на частоте 8мгц.!

Добавлено: Сб дек 22, 2007 06:47:03
Chip115
Усе. В той проге разобрался. Теперь новая проблема.
Программа должна работать след. образом. При нажатии на кнопку 1 должен зажеться 0 на индикаторе . При нажатии на кнопу 2 должна зажеться 1. Индикатор с общим катодом. Кнопки подключены к PD0 и к PD1 и на землю. Индикатор подключен к порту B. В порядке dacgbfe-1234567. Точка на индикаторе и вывод 0 порта В незадействованы.
хотел чтоб все работало на частоте 4МГц с внешним кварцом, но низнаю как выставить фьюзы.
Выставил галочки :
CKSEL0
CKSEL2
CKSEL3
SUT0
он должен работать от внутреней цепочки.
В AVR Srudio все работает, а на яву нехочет.
Прив вкключении питания все сигменты начинают мигать и светяться ну ооочень тускло. На кнопки не реагирует. При отключении питания на мгновение ярко загораются некоторые сигменты.
незнаю где собака зарыта.
Может фузы нетак стоят?.

Добавлено: Сб дек 22, 2007 08:36:13
ИРБИС
Chip115 писал(а): низнаю как выставить фьюзы...
Может фузы нетак стоят?.
Всё о фьюзах... :evil:

Добавлено: Сб дек 22, 2007 12:00:48
Chip115
выставил фузы. немного упростил исходник. Теперь должен зажеться один сигмент при нажатии кнопки, но почему то светятся все сигменты, независимо от кнопки.
исходник:
.def temp0 =r16
.def temp1 =r17
.def temp2 =r18

Init:
ser temp0 ;Все выводы порта А выход
out DDRA,temp0
ser temp0 ;Все выводы порта B выход
out DDRB,temp0
ldi temp0,0b11111110 ;Вывод 0 и 1 порта D вход
out DDRD,temp0

ldi temp0,0b00000000 ;подтяжка порта D включена
out PortD,temp0
clr temp0 ;подтяжка портов А и В отключена
out PortB,temp0
out PortA,temp0

Start:
sbic PinD,0 ;Проверяем нажатие кнопки 1
ldi temp2,0b00000001 ;
out PortB,temp2 ;Зажигаем сигмент
rjmp Start

attiny 2313v

Добавлено: Сб янв 12, 2008 04:08:01
Dock
доброй ночи.
хотел бы сказать огромное спсибо тем кто разрабатывал этот форум и раздел с "обучалкой". первый раз я нашол именно этот раздел и прочитав его сделал себе програматор заранее купив 2-е attiny 2313v (хорошо, что 2). :))) все меня сразу поняли. сегодня нашол все ответы которые бы хотел найти.. основа есть.. но вот обидно когда разбирался по глупости, точнее просто забыл убрать галку в CODEvisionAVR а именно program fuse bit(s) и по невнимательно нажал прошить. вообще эту прогу попробовал просто так для знания. Хотя до этого полностью разобрал PonyProg и в ней уже прошил свой первый код. Естественно после этой процедуры (прошивка в AVR) контроллер на мой многчисленный мат перестал видется... в этом же разделе прочитал что можно востановить но ничего не понял.. объясните чем же можно исправить мою ошибку???

Добавлено: Вс янв 13, 2008 00:56:33
UkrRadist
Долго искал информацию по програмированию и прошивке микроконтролеров.наконец то собрал свой первый(!) STK200,собрал схемку на Тини2313 с четирьмя светоиодами,нашел какую то прошивку и решил это скомпонировать.дело было вчера.вставив программатор в ЛПТ у меня загорелся светодиод на STK200,который у меня соеденьон между землей(10) и VCC(20) 74HC244N,хотя и красиво, но меня это не обрадовало(так должно бить?ведь я еще нечего не шью!).Подключил плату з Тинькою,подал питание,запустил Avreal, он выдал какую то ошибку(ниже привел).так я не поняв в чом проблема лег спать с каменем на душе :cry: .Может кто то мне подскажет, как можно знать что програматор и контроллер работает,может есть какието "контрольные точки"?

Добавлено: Вс янв 13, 2008 01:15:00
Brutaller
UkrRadist, ведь avreal тебя ясно сказал "Altera ByteBlaster not found" , т.е. не найден такой :)
А чтож ты хотел, если ты говоришь, что STK200 собрал :)
Ключик то в командной строке "-ab" , что значит шить через Altera ByteBlaster. Поставь "-as" и будет тебе счастье.
Со страницы автора AVReAl :
-ab работа через Altera ByteBlaster (включая ByteBlasterMV, ByteBlaster-II)
-as работа через адаптер Atmel STK*00
-aa автоматический выбор ByteBlaster/STK
А можешь просто -aa поставить и не париться.
А ключ -! убери, не нужен он, это только для экстремальных случаев.
И зачем тебе ключ -o0 ? Если не ошибаться с прошивкой фьюза CKSEL, то он нафиг не нужен.
И ключ -2 зачем ???
Ну а про светодиод ты сам ответил на свой вопрос. Он же у тебя между землей и питанием сидит? Так что же ты от него еще то хочешь? :))

P.S. Подробное описание AVReAl, читай внимательно и вопросов будет меньше ;)

Добавлено: Вс янв 13, 2008 01:33:39
UkrRadist
не знаю почему там окзалось -ab, ведь я хотел -aa, а что косается светодиода, то он у меня светится при отсутствии питанния на плате,выходит, светится от ЛПТ-порта.Но спасибо что мне глаза открыл, попробую сейчас еще раз.

Добавлено: Вс янв 13, 2008 02:01:02
UkrRadist
только что пробовал прошить.Сначала запустил АвРеал,выдало какуюто ошибку,вроде МК не включен.Потом запустил CodeVision,в ответ тоже чтото страшное получил.даже не знаю в чем дело.Ниже приведены ответы при прошивке.

Добавлено: Вс янв 13, 2008 02:26:35
Brutaller
Вобщем не могут программаторы связаться с кристаллом, вот о чем говорят твои скриншоты. А причин быть может очень много. Проверяй все по порядку. Остается надеяться, что ты не загнал некоторые фьюзы, а соответственно и сам чип "в позу".

А ты хоть что-нить им уже прошивал? Или это твой первый программатор и первый чип(ATtiny2313) ?

Добавлено: Пн янв 14, 2008 01:09:27
UkrRadist
Все,всем спасибо,вопрос снимается.Схема заработала,диоды моргают!!я просто перепутал выводы в шлейфе :)) .

Добавлено: Вт янв 22, 2008 15:15:52
Chip115
Всем привет! Учусь програмировать на С. Хочу написать первую свою прогу для тини2313. Смыс в то надо чтоб светодид мигал с частотой в одну секнду. Сколько писал-все ошибки лезут. ВОт исходник.

Код: Выделить всё

#include <iotn2313>
#include <delay> 
int main()
{
	DDRB=0xFF;			//Настройка портаB
	DDRA=0xFF;			//Настройка порта A
	DDRD=0xFF;			//Настройка порта D
	
	PortB=0x01;			//Включаесм СИД
	delay_us(1000);		//Ждем
	PortB=0x00;			//Выключам СИД
	while (1)
	

	
}

Добавлено: Вт янв 22, 2008 19:38:29
DIM4
попробуй так

Код: Выделить всё

include <iotn2313> 
#include <delay> 
int main() 
{ 
   DDRB=0xFF;         //Настройка портаB 
   DDRA=0xFF;         //Настройка порта A 
   DDRD=0xFF;         //Настройка порта D 
   while (1)
   { 
   PortB=0x01;         //Включаесм СИД 
   delay_us(1000);      //Ждем 
   PortB=0x00;         //Выключам СИД 
   delay_us(1000);
   }
}

Добавлено: Вт янв 22, 2008 20:46:09
ARV
НЕ буду утверждать, но если я не путаю, PORTB и PortB в Си - это две большие разницы.

Добавлено: Вт янв 22, 2008 21:13:41
Krik99
А каким компилятором пользуешся? Если только начал учить Си, можеш писать под CodeVision AVR... Но хотя , каждому нравится разные компиляторы... Ошибочек много, даже с тем PortB , если CodeVIsion, то где-то такой исходник у меня на форуме был... Просто вот мне кажется ещё ошибочка с #include <iotn2313> #include <delay> хотя, я незнаю под какой компилятор было написано... :)

Добавлено: Ср янв 23, 2008 14:44:52
Chip115
Krik99 писал(а):А каким компилятором пользуешся?

AVR Studio.
Щас попробую исправить. :)

Добавлено: Ср янв 23, 2008 14:47:26
Chip115
DIM4 писал(а):попробуй так

Код: Выделить всё

#include <iotn2313> 
#include <delay> 
int main() 
{ 
   DDRB=0xFF;         //Настройка портаB 
   DDRA=0xFF;         //Настройка порта A 
   DDRD=0xFF;         //Настройка порта D 
   while (1) 
   { 
   PORTB=0x01;         //Включаесм СИД 
   delay_us(1000);      //Ждем 
   PORTB=0x00;         //Выключам СИД 
   delay_us(1000); 
   } 
}
Не работает. Где собака зарыта?

Добавлено: Ср янв 23, 2008 17:18:21
Krik99
А что делает контролёр после подачи питания? Мне кажется, delay_us(1000); это сильно быстро, попробуй delay_ms(1000);
Попробуй так... Хотя может я и сам пару ошибок сделаю, так как пишу под CodeVision AVR... :)

Код: Выделить всё

#include <iotn2313> 
#include <delay> 
int main() 
{ 
   DDRB=0xFF;         //Настройка портаB 
   DDRA=0xFF;         //Настройка порта A 
   DDRD=0xFF;         //Настройка порта D 
   while (1) 
   { 
   PORTB=0xFF;         //Включаем весь порт В 
   delay_ms(1000);      //Ждем 
   PORTB=0x00;         //Выключам весь порт В
   delay_ms(1000);      //Ждём
   } 
}
Хотя попробуй по совмещать мой код, со своим... 8)
Если будет время, попробую сам сделать...

Добавлено: Ср янв 23, 2008 23:54:32
DIM4
а какие именно ошибки выдаёт ?

Добавлено: Чт янв 24, 2008 02:04:34
Chip115
DIM4 писал(а):а какие именно ошибки выдаёт ?
../11.c:1:23: iotn2313.h: No such file or directory
../11.c:2:20: delay.h: No such file or directory
../11.c: In function `main':
../11.c:5: error: `DDRB' undeclared (first use in this function)
../11.c:5: error: (Each undeclared identifier is reported only once
../11.c:5: error: for each function it appears in.)
../11.c:6: error: `DDRA' undeclared (first use in this function)
../11.c:7: error: `DDRD' undeclared (first use in this function)
../11.c:10: error: `PORTB' undeclared (first use in this function)
../11.c:11: warning: implicit declaration of function `delay_ms'
make: *** [11.o] Error 1
Build failed with 8 errors and 1 warnings...