Atmel ATMEGA168

Zuffa Jan ZuffaJ na cgc.sk
Úterý Listopad 4 14:38:25 CET 2014


Pull up sa nevyuziva a navyse ! mi kompilator oznamil
ze ten riadok kodu nebude fungovat :) Na pine port b0 je 
vystup komparatora (OC)  s 1k odporom do +5V.
S tym resetom na tom by mohlo nieco byt, pretoze som urcite
po kazdom naprogramovani zariadenie neresetoval. 

j.

-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Miroslav Šinko
Sent: Tuesday, November 04, 2014 2:30 PM
To: HW-news
Subject: Re: Atmel ATMEGA168

Ako viete, ze je procesor resetovany, len na zaklade nespravneho blikania LED? Co mate zapojene na vstupnom pine portb.0, na zaklade ktoreho ovladate LED? Nebude problem v riadku PORTB != 0x01; ? Nemate tam |, ale !, t.j. nezapnete si pull-up. Ak pin nemate zvonku tahany do oboch polarit, nacitana hodnota moze lietat, alebo vplyvom kapacity zotrvavat v  polarite, ktora bola ako posledna vnutena zvonku.
Zdroj resetu mozte skontrolovat vycitanim registra MCUCSR. Dajte si na zaciatku programu podmienku, ze ak je nastaveny bit WDRF, rozsvietite si druhu LED na inom pine.

miro

Dňa 4. novembra 2014 10:23, Zuffa Jan <ZuffaJ na cgc.sk> napísal/a:
> Zdravim vsetkych,
>
> Mam tu taky drobny problem.
> Urobil som si jednoduchy programcek na blikanie led Problem je ze mi 
> WD stale resetuje procesor. Vo Fuses je WDTON vypnute. Ked volam v 
> cykle wdt_reset() kazdu ms tak program nejak funguje. Na zaciatku som 
> skusil aj wdt_disable(); ale to nepomaha. Pouzivam AVR Studio a winavr 
> gcc Nejake napady?
>
> Cely kod programu:
>
>
> #include <avr/io.h>
> #include <avr/interrupt.h>
> #include <avr/pgmspace.h>
> #include <util/delay.h>
> #include <util/delay_basic.h>
> #include <avr/wdt.h>
>
>
> int main( void )
> {
>
>         wdt_disable();
>
>         DDRD  |= 0x10;
>         DDRB  &= 0xfe;
>         PORTB != 0x01;
>
>         while(1)
>         {
>
>                 if((PINB & 1) == 0)
>                 {
>                         PORTD &= 0xef;
>                         for(int j = 0; j < 500; j++)
>                         {
>                                 wdt_reset();
>                                 _delay_ms(1);
>                         };
>                 }
>                 else
>                 {
>                         PORTD |= 0x10;
>                         for(int j = 0; j < 500; j++)
>                         {
>                                 wdt_reset();
>                                 _delay_ms(1);
>                         };
>                 }
>         };
> }
>
> j.
>
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list