Výber procesora PIC pre veľmi jednoduchú úlohu

Ahojte

Chcem vas poprosit o vyriesenie mozno jednoducheho problemu.
Kedze zacinam s PiCom, tak vedomosti este nemam, preto toto tema.

Potrebujem zistit aky typ procesoru by som potreboval k tomuto projektu:
power on - caka 40s potom zapne vystup 1, caka dalsich 60s potom zapne
vystup 2
- flash led 300s potom svieti a zapne vystup 3

Mozno staci nejaky jednoduchy procesor, ale mylia ma tie casy.Neviem ci treba procesor s viacerimy casovacmi, alebo staci jeden casovac.

Dakujem.

:arrow_right: administrator: přejmenováno z "Spravny vyber procesora PIC"

Bude stačit libovolný pic s jedním časovačem (měl by mít přerušení o toho časovače - ale to snad mají už všici) Jde to udělat u bez něj ale pohodlí je pohodlí…

Ako by sa malo to casovanie realizovat?
Neviem si to momentalne vybavit, trosku ma skuste nakopnut, aby som sa
mohol niecoho chytit.

Dakujem.

Složitá cesta:
Nastaviš časovač tak aby generoval přerušení každou 1ms. Procesor zacykliš v nekonečné smyčce kde bude čekat na přerušení. Když uběhne 1ms, mcu skočí do obsluhy přerušení a tam změníš hodnotu různých počítadel (proměných) tak abys mohl odpočítavat svoje časové úseky. Když doběhne čas který potřebuješ uděláš akci kterou si chtěl přenastavíš to na další časový usek pokračuješ. Pořadí akcí řídíš jako stavový automat.

Jednoduchá cesta:
Čekání realizuj pomocí cyklického provádění nějaké neutrální operace , třeba NOP. Pak poskládáš lineárně za sebe čekání a požadované akce tak jak potřebuješ.

Třeba takto

[code]#include “htc.h”
#include <stdio.h>

void main (void)
{
TRISC = 0b00000000;
int count = 0;

TMR0 = 99;
PSA = 0;
PS0 = 0; 

PS1 = 1;
PS2 = 1;
T0SE = 0;
T0CS = 0;

while(1)
{
	while(T0IF)
	{
		T0IF = 0;
		TMR0 = 99;
		count++;
	}
	if(count == 50)
		PORTC = 0b00000111;
	if(count == 100)
	{
		PORTC = 0b00111000;
		count = 0;
	}
} 

}[/code]

šikovná stránka je

http://eng-serve.com/pic/pic_timer.html

Dik, musim si to prejst a vyskusat.

Ten odkaz je na prd, nastavil jsem hodnoty dle toho a tiká to jinak :-/