pic 16f84 problem
5 отговора
0 прегледа
pic 16f84 problem
незнам до колко това е проблем или незнание от моя страна
, но за мен си е и двете
дали има инструкция в асемблер за random изпълнение на подпрограма. В смисал ако имам : choice_edno, choice_dve,choice_tri,choice_cheteri....да кажем до choice_deset и pic-a сам да си избира коя подпрограма да изпълни.
дали има инструкция в асемблер за random изпълнение на подпрограма. В смисал ако имам : choice_edno, choice_dve,choice_tri,choice_cheteri....да кажем до choice_deset и pic-a сам да си избира коя подпрограма да изпълни.
Re: pic 16f84 problem
Такова нещо сам да си избере в компютрите няма
Всичко става според определен критерии , Обикновенно става като заложиш някакъв флаг и ако е вдигнат да се избере А или Б , или от няколко флага А, Б , С и т.н. да изпълни тези подпрограми според флага
Всичко става според определен критерии , Обикновенно става като заложиш някакъв флаг и ако е вдигнат да се избере А или Б , или от няколко флага А, Б , С и т.н. да изпълни тези подпрограми според флага
Re: pic 16f84 problem
Или по някакъв алгоритъм да си генерираш "псевдослучайни" числа. Генератора се пуска при определено събитие, а според полученото число да се насочваш към различните подпрограми.
Редактирано от RC на
Re: pic 16f84 problem
Най-лесно е така пускаш цикъл да брои от едно до десет непракъснато.
Цикъла се прецъсва при вдигнат флаг от даден бутон и отчиташ състоянието на брояча.
Така при външно(несинхронизирано) прекъсване, ще се получи, че всеки път ти отговаря различна подпрограма в зависимост докъде е стигнал брояча.
Ето това е често срещано случайно избиране. Така теглят и жребии на почти всички томболи по телевизията.
Цикъла се прецъсва при вдигнат флаг от даден бутон и отчиташ състоянието на брояча.
Така при външно(несинхронизирано) прекъсване, ще се получи, че всеки път ти отговаря различна подпрограма в зависимост докъде е стигнал брояча.
Ето това е често срещано случайно избиране. Така теглят и жребии на почти всички томболи по телевизията.
Re: pic 16f84 problem
Това с бутона е ясно, аз си мислех без бутон, но вече имам няква идея ще видя какво ще направя. Благодаря все пак на всички които са отделили време да ми отговорят.
Re: pic 16f84 problem
Ами да от незнание е :) няма такава инструкция в 16ф 84
трябва сам да създадеш алгоритам за такава операция ...
правеца имаше такава операция под бейсик .. мисля че използваше стека
за тая цел . (но не си спомням вече)
Ако числата които искаш да генерираш не са строго циклични , тоест
да ги извличаш на точно определено време едно след друго
то можеш да ползваш тмр0 за брояч и при извикване на число да взима стоиност от него , като за още по сигурно числото да е случаино можеш да го събереш или умножиш на друго извлечено число примерно от стека или друга променлива ... ако числата се генерират през точно определен интервал ...
можеш да вържеш към няколко извода външни схеми които да пращат поне на пръв поглед случайни импулси към изводите и с програмата да извлечеш състоянитето на изводите и съпоставяики с друга величина ще имаш някакво случаино число ...
Пример можеш да свържеш един фотодиод или доторезистор през един аналогово цифров преобразувател и така в зависимост от осветеноста ( а тя е доста променлива величина примерно ако говорим за външно у-во) да получиш на входовете случаини числа ... това естествено няма да се случи ако е нощем :) можеш да ползваш термодатчик ... и всякакви идеи
може да ползваш променлив кондензатор които в зависимост от вихрите които се създават покраи него ще мени макар и минимално капацитета си
трябва сам да създадеш алгоритам за такава операция ...
правеца имаше такава операция под бейсик .. мисля че използваше стека
за тая цел . (но не си спомням вече)
Ако числата които искаш да генерираш не са строго циклични , тоест
да ги извличаш на точно определено време едно след друго
то можеш да ползваш тмр0 за брояч и при извикване на число да взима стоиност от него , като за още по сигурно числото да е случаино можеш да го събереш или умножиш на друго извлечено число примерно от стека или друга променлива ... ако числата се генерират през точно определен интервал ...
можеш да вържеш към няколко извода външни схеми които да пращат поне на пръв поглед случайни импулси към изводите и с програмата да извлечеш състоянитето на изводите и съпоставяики с друга величина ще имаш някакво случаино число ...
Пример можеш да свържеш един фотодиод или доторезистор през един аналогово цифров преобразувател и така в зависимост от осветеноста ( а тя е доста променлива величина примерно ако говорим за външно у-во) да получиш на входовете случаини числа ... това естествено няма да се случи ако е нощем :) можеш да ползваш термодатчик ... и всякакви идеи
може да ползваш променлив кондензатор които в зависимост от вихрите които се създават покраи него ще мени макар и минимално капацитета си