|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 8:03 am
Нуждая се от помощ, за да науча PIC-овете!
| Автор |
Съобщение |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Ами то много сложна програмата
Май ще иде в киреча ако преброи до 4
Нищо де - дерзай!! То с грешки става работата - иначе няма научаване.
|
| Сря Юли 20, 2005 10:30 am |
|
 |
|
Васил Сапунджиев
Ранг: Новодошъл
Регистриран на: Сря Юни 01, 2005 10:22 pm Мнения: 123
|
Установих, че AVR позволяват тази програма да се опрости, но просто исках да стъпя на нещо познато от 6800. Иначе с три индексни регистъра е пълен комфорт!
|
| Сря Юли 20, 2005 11:02 am |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Ще трява да се промени заглавието на темата 
|
| Сря Юли 20, 2005 12:08 pm |
|
 |
|
VANK
Ранг: Ориентиран
Регистриран на: Чет Май 12, 2005 11:10 am Мнения: 211
|
От тук може да се изтегли една книжка на руски:
Евстифеев А.В.
Микроконтроллеры AVR семейств Tiny и Mega фирмы "ATMEL" - М.: Издательский дом "Додэка-XXI", 2004. - 560с.
ISBN 5-94120-081-1
Размер 6,843,695
h@@p://rapidshare.de/files/1294516/Evstifeev.Atmel.AVR.Tiny_Mega.Family.By.Grave.Tiny.html
След изтеглянето трябва да се преименува в:
Evstifeev.Atmel.AVR.Tiny&Mega.Family.By.Grave.djvu
P.S. За тези които не са ползвали Rapidshare, като се отвори екрана се натиска долу FREE и се изчаква изписаното време, след което се дава достъп за теглене на файла.
|
| Сря Юли 20, 2005 1:42 pm |
|
 |
|
hricava
Ранг: Минаващ
Регистриран на: Сря Юни 29, 2005 4:31 pm Мнения: 65
|
А от тук онлайн може да се види книгата PIC microcontrollers for beginners 
|
| Пет Юли 22, 2005 2:42 pm |
|
 |
|
Васил Сапунджиев
Ранг: Новодошъл
Регистриран на: Сря Юни 01, 2005 10:22 pm Мнения: 123
|
Проблем! Защо ADC ми добавя единица и когато не е имало пренос? Давам рлимер със следното програмче за събиране на 4-байтови числа. В 4 клетки задавач числа, по-малки от 10. Събирам ги с други числа, също по-малки от 10. Пренос не бива да възниква! Флагът С го нулирам предварително!!!!!! Аз ли греша, или STUDIO 4 е демо версия?
CLR R28
LDI R29,01
CLC
L1:
LD R5,Y
LDD R6,y+4
ADC R5,R6
STD Y+8,R5
INC R28
CPI R28,4
BRNE L1
|
| Съб Юли 23, 2005 4:03 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Флага С го нулираш извън цикъла - нулирай го непосредствено преди събирането. CPI променя флага С !!!  .
|
| Съб Юли 23, 2005 5:48 pm |
|
 |
|
Васил Сапунджиев
Ранг: Новодошъл
Регистриран на: Сря Юни 01, 2005 10:22 pm Мнения: 123
|
не мога да го нулирам преди събитието, защото трябва да помни преноса от предишната итерация. Ако CPI промена флаг С, може би трябва да го запомня някъде. Не видях обаче начин за достъп до флаговия регистър! Мога ли съдържанието му да го изпратя в друг регистър и след това да го върна обратно?
|
| Съб Юли 23, 2005 6:24 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Ами може да стане така:
CLR R28
MOV R24,4
LDI R29,01
CLC
L1:
LD R5,Y
LDD R6,y+4
ADC R5,R6
STD Y+8,R5
INC R28
CPSE R28,R24
JMP L1
CPSE не променя С, обаче не работи с константи и затова 4-ката трябва да се зареди в друг регистър. Или пък вместо R28 да го увеличаваш и да го сравнаваш със 4, може обратно:
MOV R28,4
LDI R29,01
CLC
L1:
LD R5,Y
LDD R6,y+4
ADC R5,R6
STD Y+8,R5
DEC R28
BRNE L1
|
| Съб Юли 23, 2005 7:47 pm |
|
 |
|
Васил Сапунджиев
Ранг: Новодошъл
Регистриран на: Сря Юни 01, 2005 10:22 pm Мнения: 123
|
Не знаех, че MOV работи с ксонстанта. Ще пробвам.Можеш ли да ме светнеш и по въпроса, как се ползва инструкцията BRBC. Опитвам се да прочета едновременно флаговете С и Н за десетично корекция, но не зная как да укажа региктър SREG, който трябва да е първи параметър.
|
| Съб Юли 23, 2005 8:41 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
MOV неработи с константа, LDI е инструкциата - объркал съм  . Първи параметър на BRBC може да е от 0 до 7, т.е. само един бит. За проверка на двата бита ще трябва да ползваш 2 инструкции BRHS, BRHC и BRCS,BRCC.
Последна промяна Dimitar на Съб Юли 23, 2005 8:56 pm, променена общо 1 път
|
| Съб Юли 23, 2005 8:54 pm |
|
 |
|
Васил Сапунджиев
Ранг: Новодошъл
Регистриран на: Сря Юни 01, 2005 10:22 pm Мнения: 123
|
Свених MOV R24,4 с LDI R24,4 и тръгна. Звачи става въпрос за една особеност на CPI. Благодаря!
|
| Съб Юли 23, 2005 8:55 pm |
|
 |
|
Васил Сапунджиев
Ранг: Новодошъл
Регистриран на: Сря Юни 01, 2005 10:22 pm Мнения: 123
|
Не мога да спра програмата след изпълнение! При 6800 има инструкция за програмно прекъсване SWI. Тук не виждам аналог за AVR. Как става това?
|
| Пон Авг 08, 2005 10:58 am |
|
 |
|
BrainStorm
Ранг: Почетен член
Регистриран на: Пон Юли 04, 2005 11:51 pm Мнения: 651 Местоположение: София
|
SWI - Software Interrupt ?
Za breakpoints ... li gowori6 ?
_________________ От наше село са види връо, ама от връо се невиди наше село ... що така и я незнам .. ?!?
|
| Пон Авг 08, 2005 12:33 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
А защо трябва да спираш програмата след изпълнение. Нормално е програмата да има основен цикъл, в който да се върти. Ако пък толкова ти трабва само един път да минеш през нея - направи и безкрайния цикъл в края. Друг вариант е след изпълнението да успиваш процесора (пак в безкраен цикъл). SWI е софтуерно прекъсване - но нали като се върне от него пак трябва да продължи на някъде.
|
| Пон Авг 08, 2005 1:33 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 1 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|