Zdravým jsem ještě trochu začátečník ale chtěl jsem se poradit se zapojením a naprogramováním jednoduchého tachometru který by měřil pouze otáčky pomocí hallova magnetického senzoru a zobrazoval by rychlost na dvouznakovem sedmisegmentovem led displeji . Děkuji všem za odpovědi.
administrator: přejmenováno z "atmega8 - tachometr"
s tím že potřebuji proměnou “vysledek” zobrazit na dvouznakovém sedmisegmentového led displaye
zkoušel jsem ten kód rúzně upravovat ale vúbec mě to nechtělo poslouchat a proto chci poprosit o kontrolu a prípadné doplnění výše umístěného kódu.
předem všem děkuji[/code]
Měl bys uvést ještě i schéma. “Neposlouchá” znamená co, že nezobrazuje nebo že neměří? V prvé řadě bys měl oživit displej - neřešit měření a přerušení, jen jednoduše zapsat na porty LED nějaké číslo, zda se správně zobrazí.
Pri takom nastaveni sa ale hodnoty 00-99 budu menit tak rychlo, ze nic neuvidis. T vomto pripade by som odporucil vlozit nejaky prikaz pause s casom vacsim ako 100ms. Odporucam to len na odskusanie programu pre display. V ziadnom pripade by sa nieco tak stupidne nemalo uchovat aj v konecnom programe. Na skusanie je to tak akurat
Prominte že jsem se tak dlouho neozval ale byl jsem pryč.
Ano máte pravdu to pole bylo špatně už jsem to opravil a jednociferná čísla to zobrazuje dobře (timto způsobem : PORTD = znaky[4] ) ale nevím jak zobrazit dvouciferné číslo zkusil jsem tento kod :
ale nezobrazilo to nic
a proto se chci zeptat jestli by mi nekdo i po tak dlouhé neprítomnosti neporadil jak tedy zobrazovat cisla od 1 do 99 na dvou znacích sedmisegmentového displeje.
Předem děkuji všem za odpovědi.
ak tam do cyklu for za nastavenie portov nedas nejaky delay, tak ti to bude zobrazovat strasne rychlo. Tak rychlo, ze si to nevsimnes. Daj do toho cyklu for nakoniec _delay_ms(1000); a pripoj kliznicu #include <util/delay.h>.
Na mieste, kde mas _delay_ms(x); ti bude program cakat x milisekund.
Zkus si nejdříve zprovoznit, abys nastavením určitého stavu na výstupních portech rozsvítil jeden jediný segment (a pak program zastavit nekonečnou smyčkou). Je možné že máš chybu v hardware a pak bys zbytečně ladil program. Postupuj od nejjednodušších úkolů a postupně přidávej (např. pak zobrazit jedinou číslici), než se snažit hned o hotový program, bez zkoušení mezikroků.
Další problém je že na portu C máš k dispozici jenom 6 pinů (sedmý je Reset). Jak tam chceš připojit 7 segmentů?
Pokud máš interní oscilátor, můžeš použít celý port B.
Pro Colin, zde jsem zkusil něco naprogramovat, v reálném zapojení to bude asi ještě potřebovat tvarovač signálu mezi mag.čidlem a uprocesorem: Tachometr.zip (35.9 KB)