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

Witam.

Pytanie może głupie, ale mam doświadczenie jakieś tam tylko z Asm dla '51 i troszkę Bascoma.

Potrzebuję wykonać układ robiący bardzo skomplikowaną czynność ;) Ma sprawdzać stany dwóch wejść. Jeżeli na pierwszym wejściu pojawi się stan wysoki, ma wygenerować impuls na wyjściu trwający 500ms. Po tym impulsie sprawdza stan na drugim wejściu czy też jest wysoki, jak nie to czeka jeszcze 2sek i jak nie pojawi się to znowu generuje impuls 500ms. I tak w kóło i tak też w drugą stronę, jak na pierwszym wejściu będzie Low podaje impuls i czeka na stan Low na drugim.

Zamiast posiadanego dużego AT89C2051 znalazłem maleństwo PIC12F509 i... jak szybko i sprawnie napisać taki program? Czasy nie muszę mieć takie dokładnie, za to musi to pracować pewnie i nie zawieszać się.

Pozdrawiam.

Reply to
Irokez
Loading thread data ...

Użytkownik "Irokez" snipped-for-privacy@op.pl napisał w wiadomości news:gfpck6$git$ snipped-for-privacy@atlantis.news.neostrada.pl...

Napisać najlepiej w darmowym środowisku microchipa. - MPLAB.

Maleństwo? Zainteresuj się serią 10F2xx - np. 10F202

- Dus

Reply to
Dus

Użytkownik "Dus" snipped-for-privacy@plusnet.pl napisał w wiadomości news:gfpcuk$2hfn$ snipped-for-privacy@opal.icpnet.pl...

No to ciągnę, potem zobaczę czy się uda :)

Ale 12F509 mam 3 sztuki w szufladzie, a 10F musiałbym gdzieś po necie kupować.

Dzięki i pozdrawiam.

Reply to
Irokez

Użytkownik "Irokez" snipped-for-privacy@op.pl napisał w wiadomości news:gfpdd9$id9$ snipped-for-privacy@atlantis.news.neostrada.pl...

Napisać i skompilować możesz w MPLAB. Jeśli nie masz narzędzi, które współpracują z MPLAB - możesz czymś innym spróbować wrzucić plik .hex, który MPLAB Ci wygeneruje. Czym to wrzucić - nie wiem, bo korzystam z ICD2.

Aaa, jeśli w szufladzie to inna sprawa.

- Dus

Reply to
Dus

Użytkownik "Dus" snipped-for-privacy@plusnet.pl napisał w wiadomości news:gfpdod$2j18$ snipped-for-privacy@opal.icpnet.pl...

aaa.. no właśnie zajrzałem że go nie ma w moim programatorze PS32, Willem też nie ma. no to piknie... Chyba że 12F509 pójdzie programowanie jako 12C509.

Reply to
Irokez

Użytkownik "Irokez" snipped-for-privacy@op.pl napisał w wiadomości news:gfpck6$git$ snipped-for-privacy@atlantis.news.neostrada.pl... Jeśli to nie jednorazowa sprawa, a działałeś na 8051, sprawdź, czy nie byłoby Ci łatwiej programować procesory Atmel. Nie chcę rozpętywać kolejnej świętej wojny, ale mi bardziej pasują. pozdrawiam, Andrzej

Reply to
Andrzej

Warto spróbować. Z tego co pamiętam to 16F84 programuje się jako wersja C. Wersja F (Flash) umożliwia wielokrotne programowanie - sprawdź pozostałe różnice między tymi prockami. Porty i peryferia raczej się nie zmieniły. Ew. nowsza wersja obsługuje szybsze kwarce.

- Dus

Reply to
Dus

Użytkownik "Andrzej" snipped-for-privacy@op.pl napisał w wiadomości news:gfpgid$s56$ snipped-for-privacy@news.onet.pl...

Jednorazówka i nie mam Atmela 8-pin a mam PIC. A jak widać potrzebuję 2 wejścia i 1 wyjście. Wojna mnie nie interesuje, bo jak widać każdy proc jest fajny do konkretnego zastosowania.

Mam 12F509 i chcę go zastosować do podanego celu i już, choćbym miał się w tydzień szybkiego kursu PIC-ASM naumieć.

PS. kurcze, jeden timerek jest ale jak tu zrobić czasówki? ;)

Reply to
Irokez

MikroBasic f-my Mikroelektronika -darmowy do 2k kodu.

formatting link

Reply to
Lukasz Spychalski

Użytkownik "Lukasz Spychalski" snipped-for-privacy@spamfe.polbox.com> napisał w wiadomości news:1508159.oTXKnU4YUb@wieszak...

Fajowe, ale nie ma PIC12F509 :( są tylko z serii 12F6xx

Widzę że Asembler pozostaje.

Reply to
Irokez

Faktycznie... sam poniżej f675 nie schodziłem i zdawało mi się, że jest wszystkomający.

Jest jeszcze pascalopodobny Jal i Jalv2 na licencji GPL. Sam pisałem tylko w starym Jalu na f84, ale wśród plików Jalv2 jest definicja f509.

Reply to
Lukasz Spychalski

Irokez pisze:

Asembler PICów jest bardzo przyjemny - to tylko 35 instrukcji, można się błyskawicznie nauczyć. Dla początkujących są też sympatyczne książeczki (np. te z BTC - może gdzieś w bibliotece pożyczysz).

Reply to
Obserwator

Użytkownik "Lukasz Spychalski" snipped-for-privacy@spamfe.polbox.com> napisał w wiadomości news:5656584.lylK3q0WOS@wieszak...

Tak sobie oglądam datasheeta 12F509 i program jest 12 bitowy? To znaczy operuje się cały czas 12 bitowym słowem? Rejestry "normalnie" już 8 bitowe. Czyli wpisując coś do rejestru trzeba najstarsze 4 bity słowa ustawić na 0? Timer też 8 bitowy... Nie zauważyłem słowa "interrupt" - nie ma przerwań tylko trzeba czytać rejestry?

Szukam czegoś podstawowego po polsku, aby zakumać o co biega w tych procesorach :) Asembler fajowy, 33 komendy.

Pozdrawiam.

Reply to
Irokez

Irokez pisze:

Instrukcje kodu są 12-bitowe, natomiast operujesz na danych 8-bitowych. Rozmiaru instrukcji przy pisaniu nie widzisz.

Na początek pomogło mi to:

formatting link

Reply to
Obserwator

Użytkownik "Obserwator" snipped-for-privacy@tego-nie-powinno-byc.o.pl.invalid> napisał w wiadomości news:gfq54o$q4f$ snipped-for-privacy@news2.ipartners.pl...

Spróbuję gdzieś to w bibliotece dorwać, mimo wszystko trochę jest na wyrost w stosunku do mojego 12F509, bo tam opisali serię Mid-Range a ja mam Base-Line w której nie ma przerwań. Ale jazda... jak odliczyć czas bez przerwań? odpytywać się ciągle ile już timer naliczył?

Dziękuję za pomoc i pozdrawiam.

Reply to
Irokez

Użytkownik "Obserwator" napisał:

można by sie zgodzić że jest prosty, ale jako jedną z zalet ma rozdzielenie pamięci programu i danych:O) a operowanie na nich jest juz troszkę namotane i wymaga ciagłej kontroli i ustawiania znaczników w rejestrach, przynajmniej ja odniosłem takie wrazenie po lekturze, nie programowałem PICa więc z praktyki nie wiem, ale takie odniosłem wrażenie

Reply to
gargamel

Irokez pisze:

Jedna instrukcja jest kodowana do jednego 12 bitowego słowa. Operujesz na danych 8 bitowych.

Nie. Nie ma nic ponad 8 bitów jeśli chodzi o rejestry danych. Do pamięci programu (która jest zbiorem słów 12 bitowych) nie masz możliwości się odwoływać.

Nie ma przerwań :((((( ...poza resetem. (mowa o rodzinie "baseline")

Ja mam zupełnie inne odczucia. Asembler może i prosty, ale lista instrukcji wcale nie taka ortogonalna jak ją reklamują. Do tego różniaste bankowania, pewne fragmenty kodu muszą się znaleźć w określonych miejscach w pamięci (podprogramy) i wiele innych. IMHO taki mały potworek - łatwy do opanowania bo prymitywny, ale jednak potworek.

pzdr mk

Reply to
mk

Andrzej pisze:

Jak Atmel zrobi AVRy miniaturki 6-pinowe w obudowie SOT23 to będzie o czym pogadać. Na razie tylko Microchip wypuścił takie cudeńka.

A i tak przyszłość Atmela wisi na włosku, bo Microchip pewnie kupi jego dział procków. Myślicie, że będą dalej produkować AVRy - tyle że z logo Microchipa? :-(

formatting link

Reply to
Adam Dybkowski

Obserwator pisze:

Asembler może tak. Ale adresowanie od początku było źle przemyślane i przy programowaniu w ASM większego PICa (16F8cośtam) wychodziła mi co chwilę potrzeba przełączania się między 4 bankami danych oraz wydziwionych skoków pomiędzy 4 bankami kodu. Kompletna tragedia. Na szczęście teraz PICów w firmie nie muszę się dotykać.

Reply to
Adam Dybkowski

Adam Dybkowski pisze:

Uszy do góry, może nie będzie tak źle:

formatting link
pzdr mk

Reply to
mk

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.