Dobrý den.
Mohl by mi někdo prosím poradit jak na 7 segmentovém displeji měnit dvě čísla nezávisle na sobě, tak aby obě současně svítili? Jsem v programování microkontrolerů nový a zatím jsem funkční řešení nenašel. Používám WinAVR 20100110 a ATMEGU 644p.
Děkuji. Každá rada dobrá.
kód:
[code]#include <avr/io.h> #include <util/delay.h>
#define POCET_CISLIC 2
int main (void)
{
DDRC = 0xff; // cely port C je vystupni
//DDRD = 0X03; //pouzivam dolni 2 bity portu D
Cau,predpokladam ze na portc mas oba 2 segmenty , na portd.0 a 1 mas anody, na portc zapices hodnotu pro nejakou cislici , zapnes anodu pro 1st segment , chvyly pockas (ne 1S,treba 10mS) , vypnes anodu, na portc zapices hodnotu pro nejakou cislici,zapnes anodu pro 2nd segment , chvyly pockas, vypnes anodu, a porad do kola
DDRC = 0xff; // cely port C je vystupni
DDRD = 0X03; //pouzivam dolni 2 bity portu D
int cntj = 0,cntd=0,count=0;
PORTC = 0;
PORTD =0;
while (1)
{
PORTC = gen [cntj];
PORTD = 0x01;
_delay_ms(10);
PORTD = 0x00;
PORTC = gen [cntd];
PORTD = 0x02;
_delay_ms(10);
PORTD = 0x00;
if(count>50)
{
if (cntd == 9)cntd=0;
if (cntj == 9)
{
cntj=0;
cntd++;
}
else cntj++;
count=0;
}
else count++;
}
s AVR nedelam tak doufam ze sem tam nic fatalne nes…, na ukazku to snad staci