RTV forum PL | NewsGroups PL

Jak szybko napisać program na PIC12F509 do monitorowania wejść i generowania impulsów?

PIC12F509 - w czym napisać program? początkujący

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak szybko napisać program na PIC12F509 do monitorowania wejść i generowania impulsów?

Goto page Previous  1, 2, 3, 4, 5  Next

Guest

Thu Nov 20, 2008 7:46 pm   



Tom <Tom@nospam.com> napisał(a):

Quote:
Fiat sprzedaje duzo wiecej samochodow niz Ferrari, czy to dowod ze Fiat
jest du
zo lepszy?

A to Ferrari i Fiat to nie jest jedna i ta sama firma?


--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Irokez
Guest

Thu Nov 20, 2008 8:55 pm   



Użytkownik "Adam Jurkiewicz" <ajpic@ajpic.tegoniema.zonk.pl> napisał w
wiadomości news:gfschg$csb$1@node1.news.atman.pl...
Quote:

a tu tutaj masz makra, które pewnie Ci się przydadzą jak się przesiadasz z
'51

http://ajpic.zonk.pl/asm/makra.inc

O na pewno się przydadzą.


Quote:
Czasem można zaatakować zniżki, które otrzymuje się na seminariach MC
i kupić oryginalne narzędzie od 20% do 60% taniej (w zależności na
co trafisz).

Trzeba jeszcze te seminaria odwiedzać...

Dziękuję za pomoc i pozdrawiam.


--
Irokez

Adam Jurkiewicz
Guest

Thu Nov 20, 2008 9:53 pm   



Tom wrote:
Quote:
Fiat sprzedaje duzo wiecej samochodow niz Ferrari, czy to dowod ze Fiat
jest duzo lepszy?

Trochę Ci się pomyliło z przyrównaniem. Zauważ, że Atmel jest średnio tańszy
od Microchipa...

--
e-mail: ajpic@ajpic.tegoniema.zonk.pl
www: http://ajpic.zonk.pl/
gg#: 1781804

Adam Dybkowski
Guest

Fri Nov 21, 2008 1:26 am   



Zbych pisze:

Quote:
Jasne. Na pewno przy programowaniu w C całe to manglowanie bankami
pamięci jest sprytnie ukryte i nie ma się co przejmować. W C na PICe
nigdy nie pisałem (czy gcc jest już zportowane?).

Oczywiście, że jest. Jak myślisz jaki kompilator microchip sprzedaje
swoim klientom? Smile

Pisałem o gcc mając na myśli kompilator _darmowy_ (a nie sprzedawany).
Na '51 jest sdcc, na AVRy jest avr-gcc, na ARMy jest arm-elf-gcc. Czy
gcc jest też przeniesione na PICe?

--
Adam Dybkowski
http://dybkowski.net/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

Adam Dybkowski
Guest

Fri Nov 21, 2008 1:32 am   



gargamel pisze:

Quote:
Niby które? Bo AFAIR zwykłe PICe (8-bitowe) wykonują nawet najprostsze
instrukcje w 4 takty zegara. Pomyliło Ci się z AVRami śmigającymi
rzeczywiście instrukcje przy 1 MIPS/MHz (1 cykl = 1 takt zegara).

oj, no faktycznie, mój błąd, wykonują instrukcję w 4 takty zegarowe:O(

nie wiem nic o AVRach, więc jak one to robią że wykonują instrukcję w
jednym rakice zegarowym? (zwłaszcza że podobno moają tą samą przestrzeń
programu i danych)

AVRy mają potok 2-cyklowy - jednocześnie wykonują jedną instrukcję i
pobierają kolejną. Dlatego co takt zegara AVR kończy wykonywanie
kolejnej instrukcji (większości). Instrukcje zajmujące w pamięci Flash
dwa słowa 16bit (a nie standardowo jedno słowo) wymagają jednak 2 taktów
zegara do wykonania, podobnie jak skoki (konieczność opróżnienia
pipeline'a) oraz pobrania bezpośrednie z pamięci (z podaniem pełnego
16-bitowego adresu przekazywanego w drugim słowie rozkazu).

Wszystkie AVRy mają rozdzielone przestrzenie programu i danych. Program
leży we Flashu (i tylko stamtąd może być wykonywany). A na obszar danych
(licząc od adresu 0 przestrzeni danych) składają się: rejestry
procesora, rejestry specjalne I/O, pamięć wewnętrzna RAM oraz ew. pamięć
RAM doczepiona na zewnątrz (do większych procesorów - które mają
magistralę pamięci wypuszczoną na zewnątrz).

--
Adam Dybkowski
http://dybkowski.net/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

gargamel
Guest

Fri Nov 21, 2008 11:41 am   



Użytkownik "Adam Dybkowski" napisał:
Quote:
AVRy mają potok 2-cyklowy - jednocześnie wykonują jedną instrukcję i
pobierają kolejną. Dlatego co takt zegara AVR kończy wykonywanie kolejnej
instrukcji (większości). Instrukcje zajmujące w pamięci Flash dwa słowa
16bit (a nie standardowo jedno słowo) wymagają jednak 2 taktów zegara do
wykonania, podobnie jak skoki (konieczność opróżnienia pipeline'a) oraz
pobrania bezpośrednie z pamięci (z podaniem pełnego 16-bitowego adresu
przekazywanego w drugim słowie rozkazu).

dokładnie tak mają też PICe, potok 2-cyklowy, ale rozkazy zajmują w pamięci
jedno słowo (wiec operacje na nim powinny być szybsze niz rozkazy 2słowowe)

w PICu są 4 takty na pobranie rozkazu (coś długo się ten rozkaz pobiera), i
4 takty na wykonanie czyli: 1-dekodowanie 2-pobranie argumentu z pamieci
danych 3-wykonanie 4-zapianie wyniku do pamięci danych (ponieważ działą
dwupotokowo to wychodzi średnio 4 takty na rozkaz)
więc jakie sztuczki zastosował AVR że wykonuje cały rozkaz w jednym takcie?
(mimo 2 słownego rozkazu)

Zbych
Guest

Fri Nov 21, 2008 7:36 pm   



Adam Dybkowski przemówił ludzkim głosem:

Quote:
Pisałem o gcc mając na myśli kompilator _darmowy_ (a nie sprzedawany).

Sorry, ale jeszcze nie potrafię czytać w czyichś myślach. Co do
darmowości, to możesz pobrać wersję źródłową ze strony microchipa i ją
sobie skompilować - będziesz miał za darmo. Niestety w ten sposób
będziesz miał goły kompilator bez libc i ostatniego etapu optymalizacji,
który został celowo przez microchipa umieszczony poza gcc.

Adam Dybkowski
Guest

Sat Nov 22, 2008 12:15 am   



gargamel pisze:

Quote:
w PICu są 4 takty na pobranie rozkazu (coś długo się ten rozkaz
pobiera), i 4 takty na wykonanie czyli: 1-dekodowanie 2-pobranie
argumentu z pamieci danych 3-wykonanie 4-zapianie wyniku do pamięci
danych (ponieważ działą dwupotokowo to wychodzi średnio 4 takty na rozkaz)
więc jakie sztuczki zastosował AVR że wykonuje cały rozkaz w jednym
takcie? (mimo 2 słownego rozkazu)

Nie wiem i pewnie Atmel też się tym nie pochwali.
Ale faktem jest, że 1000 NOPów (albo innych prostych operacji - dodawań,
przesłań między rejestrami, operacji logicznych itd) trwa 1000 taktów
zegara czyli 1 MIPS/MHz.

--
Adam Dybkowski
http://dybkowski.net/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

gargamel
Guest

Sat Nov 22, 2008 1:26 pm   



Użytkownik "Adam Dybkowski" napisał:
Quote:
Nie wiem i pewnie Atmel też się tym nie pochwali.

jak to nie wiesz, nie znasz architektóry tych procków?
bo taka sztuczka musi mieć żródło w specyficznych rozwiazaniach
architektóry, czy może jest to jakaś tajemnica firmy a programisci znają
jedynie instrukcje a nie znają budowy?:O)


Quote:
Ale faktem jest, że 1000 NOPów (albo innych prostych operacji - dodawań,
przesłań między rejestrami, operacji logicznych itd) trwa 1000 taktów
zegara czyli 1 MIPS/MHz.

ok, czyli jednak widzę że warto sie zainteresować architekturą tych AVRów:O)

Adam Dybkowski
Guest

Sat Nov 22, 2008 10:30 pm   



gargamel pisze:

Quote:
Nie wiem i pewnie Atmel też się tym nie pochwali.

jak to nie wiesz, nie znasz architektóry tych procków?
bo taka sztuczka musi mieć żródło w specyficznych rozwiazaniach
architektóry, czy może jest to jakaś tajemnica firmy a programisci znają
jedynie instrukcje a nie znają budowy?:O)

To nie tak. Przypuszczenie o dwutaktowym potoku w AVRach wyszło w
Internecie dopiero po pewnym czasie od wypuszczenia pierwszego AVRa na
rynek (to był model AT90S1200, wprowadzony do sprzedaży prawie
równolegle z AT90S2313). Oficjalnie nie widziałem nigdy, aby Atmel tak o
tym pisał. W dokumentacji po prostu dają informacje, które instrukcje
zajmują 1 takt zegara, a które 2 takty. Podobnie robi to atmelowy
symulator (AVR Studio), umożliwiający zliczanie taktów zegara w
wykonywanym kodzie (trzeba najpierw ustawić częstotliwość taktowania
symulowanego procesora i takty zegara są przeliczane potem dodatkowo na
mikrosekundy).

Według mnie właściwie nie ma przeciwwskazań, aby niektóre bloki
procesora pracowały asynchronicznie - tzn. po pierwszym zboczu zegara
następuje pobranie rozkazu, potem przekazanie sterowania (po zakończeniu
pobrania) asynchronicznie do jednostki dekodującej, następnie do
wykonującej np. dodawanie 2 rejestrów itd. A na samym końcu procesor
czeka bezczynnie do kolejnego aktywnego zbocza zegara. Atmel publikuje
wykresy korelacji zegara procesora ze strobami dostępu do pamięci,
momentami wystawienia adresu itd. tylko dla przypadków dostępu do
zewnętrznej pamięci RAM oraz momentów zmian przy sterowaniu pinami I/O.
Nie wiadomo dokładnie, co i w jakim momencie dzieje się gdy procesor ma
do wykonania rozkaz "w środku", nie korzystający z zewn. magistrali ani
nie zmieniający stanu pinów I/O.

Quote:
Ale faktem jest, że 1000 NOPów (albo innych prostych operacji -
dodawań, przesłań między rejestrami, operacji logicznych itd) trwa
1000 taktów zegara czyli 1 MIPS/MHz.

ok, czyli jednak widzę że warto sie zainteresować architekturą tych
AVRów:O)

To zależy od wymaganej wydajności. Dla minipotrzeb wystarczą AVRy, PICe
czy MSP430. Co wybierzesz to tylko kwestia ceny (tu chyba wygrywa AVR),
poboru prądu (wygrywa MSP430) czy czasu implementacji rozwiązania (PICe
jeżeli już coś na nich robiłeś).

Do nieco większych potrzeb polecam architekturę ARM. Program wykonywany
z wewnętrznego RAMu również potrafi szybko działać, przy zachowanym
małym poborze mocy (w przeliczeniu mW/MHz). Jeżeli nie wystarcza już Ci
64KB pamięci danych (i/lub 256KB pamięci programu) - czas spojrzeć na
ARMa. Do tego jeżeli Microchip kupi Atmela (i zamknie dział AVR) albo
jeszcze ktoś inny kupi Microchipa (i zamknie dział PIC), ARMy wciąż będą
produkowane przez co najmniej kilkadziesiąt różnych firm.

--
Adam Dybkowski
http://dybkowski.net/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

gargamel
Guest

Sun Nov 23, 2008 12:33 am   



Użytkownik "Adam Dybkowski" napisał:
Quote:
To nie tak. Przypuszczenie o dwutaktowym potoku w AVRach wyszło w
Internecie dopiero po pewnym czasie od wypuszczenia pierwszego AVRa na
rynek (to był model AT90S1200, wprowadzony do sprzedaży prawie równolegle
z AT90S2313). Oficjalnie nie widziałem nigdy, aby Atmel tak o tym pisał.
/ciap/
Nie wiadomo dokładnie, co i w jakim momencie dzieje się gdy procesor ma do
wykonania rozkaz "w środku", nie korzystający z zewn. magistrali ani nie
zmieniający stanu pinów I/O. /ciap/

eee... mam rozumieć że architektura AVRów jest tajna?:O(
a programista zna jedsynie listę rozkazów?

bo jeśli tak, to nawet nie ma sobie co zawracać głowy tymi prockami.

J.F.
Guest

Sun Nov 23, 2008 1:01 pm   



On Sun, 23 Nov 2008 00:33:19 +0100, gargamel wrote:
Quote:
Użytkownik "Adam Dybkowski" napisał:
To nie tak. Przypuszczenie o dwutaktowym potoku w AVRach wyszło [..]
Nie wiadomo dokładnie, co i w jakim momencie dzieje się gdy procesor ma do
wykonania rozkaz "w środku", nie korzystający z zewn. magistrali ani nie
zmieniający stanu pinów I/O. /ciap/

eee... mam rozumieć że architektura AVRów jest tajna?:O(
a programista zna jedsynie listę rozkazów?
bo jeśli tak, to nawet nie ma sobie co zawracać głowy tymi prockami.

A masz schemat do jakiegokolwiek procesora ktorego uzywasz ?

ze wszystkimi jest niestety podobnie - wiesz tyle ile producent
napisal, a jak zaczniesz zadawac zaawansowane pytania to sie okaze ze
nie napisal. W dodatku moga zajsc zmiany przy zmianie technologii.

Np - czy mozna zegar zatrzymac ? czy zapis do eepromu sie powiedzie
jesli zegar zatrzymamy gdzies w trakcie.

J.

gargamel
Guest

Sun Nov 23, 2008 7:24 pm   



Użytkownik "J.F." napisał:
Quote:
A masz schemat do jakiegokolwiek procesora ktorego uzywasz ?

do PICa w każdej ksiażce, praz w dokuimentacji procjka jest schemat blokowy
(rejestry, pamieci, liczniki i takie tam, magistrale i tym podobne,
dodatkowo są schematy elektroniczne wyjść/wejsć i podobne pierdoły, wszystko
co trzeba zeby coś zacząć projektować:O)

więc ponawiam pytanie, czy producent tego zachwalanego AVRa ukrywa przed
klientami architekturę procka?

Michał Baszyński
Guest

Sun Nov 23, 2008 11:16 pm   



gargamel pisze:
Quote:
Użytkownik "J.F." napisał:
A masz schemat do jakiegokolwiek procesora ktorego uzywasz ?

do PICa w każdej ksiażce, praz w dokuimentacji procjka jest schemat
blokowy (rejestry, pamieci, liczniki i takie tam, magistrale i tym
podobne, dodatkowo są schematy elektroniczne wyjść/wejsć i podobne
pierdoły, wszystko co trzeba zeby coś zacząć projektować:O)

więc ponawiam pytanie, czy producent tego zachwalanego AVRa ukrywa przed
klientami architekturę procka?

czy mógłbyś w takim razie sam zerknąć do dokumentacji AVR-ów i nas oświecić?
Bo jak widzę, to tutaj chyba tylko Ty na podstawie schematu blokowego
jesteś w stanie dokładnie określić zależności czasowe wykonywania
rozkazów procesora..

--
Michał

William
Guest

Mon Nov 24, 2008 7:48 am   



Użytkownik "gargamel" <serefowa@doli.na> napisał w wiadomości
news:ggcbto$faj$1@news.wp.pl...
Quote:
Użytkownik "J.F." napisał:
A masz schemat do jakiegokolwiek procesora ktorego uzywasz ?

do PICa w każdej ksiażce, praz w dokuimentacji procjka jest schemat
blokowy (rejestry, pamieci, liczniki i takie tam, magistrale i tym
podobne, dodatkowo są schematy elektroniczne wyjść/wejsć i podobne
pierdoły, wszystko co trzeba zeby coś zacząć projektować:O)


To na tym samym stopniu ogólności jest dokumentacja do AVR. Wystarczająca w
zupełnosci do projektu i oprogramowania ale niewystarczająca do zklonowania
mikrokontrolera.

Quote:
więc ponawiam pytanie, czy producent tego zachwalanego AVRa ukrywa przed
klientami architekturę procka?


Goto page Previous  1, 2, 3, 4, 5  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Jak szybko napisać program na PIC12F509 do monitorowania wejść i generowania impulsów?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map