ATmega32 a bootloader: nefunkční pinu portu D (D0 a D1)

dobrý den, chtěl by sem se zeptat, jestli je možné nějakým způsobem zničit piny, nebo je chyba někde jinde. Když zkouším na nefunkční piny připojit LED, tak jen při nahrávání programu probliknou a víc nic. Předem děkuji za odpověď :slight_smile:

:arrow_right: administrator: přejmenováno z "nefunkční pinu portu D (D0 a D1)"

no a co to mas za procesor ? :slight_smile:

atmega32 v DILu

tak predpokladam ze to nahravas cez bootloader, a tie ledky ti rozblikava komunikacia.
Ten program co tam nahravas, mas ho spravne napisany ? tj. mas tie dva piny nastavene ako vystupne, a nas zapisanu spravnu hodnotu, aby ti led svietili ? Skus sem dat ten program.

ano peru to tam přes bootloader. tenhle program by měl bejt spravně.
#include <avr/io.h>
#include <util/delay.h>

int main (void)
{
DDRD=0x00000011;

while (1)
{
PORTD=0b11111100;
_delay_ms(100);

}
}

u toho ddr jsem se přepsal, má tam bejt místo x b

nj program vyzera spravne. Este by mohla byt chyba v zapojeni, ale to mas snad spravne. Ja ti asi nepomozem, lebo ma nic nenapada…
BTW: nastavenie PORTD v slucke ti vlastne nic nerobi, lebo stav sa nemeni.
PORTD=0b11111100; mozes dat rovno za DDRD.

EDIT: samozrejme mozes tie ledky este vyskusat na inom porte, aspon budes vediet ci je chyba len na tych dvoch pinoch…

mám vývojovou desku, takže zapojení je v cajku, btw. děkuji za poznámku :wink:

Piny samozrejme znicit mozes, mne sa to pred par dnami stalo na M48 ked som nechtiac priviedol 15V na jeden z pinov. Okolite piny su nastastie v poriadku

Lepší je nechat ledky blikat

while (1) { PORTD=0b11111100; _delay_ms(300); PORTD=0b11111111; _delay_ms(300); }

tak já jsem předtim na ty piny nic nepřivedl, vůbec jsem je nepoužíval a když jsem je chtěl použít tak nefungují… je to jedno, zbylých 6 funguje v pořádku a navíc mám ještě 3 brány, ale jen mě to zajímalo, jestli se to někomu něco podobnýho stalo :wink:

Je ten program kompletní? Není tam inicializace UART?
PD0 a PD1 jsou piny uartu.

Teď jsem si vzpomněl že jsem se s tím už setkal.
Uart je inicializovaný v bootloaderu a při při jeho opuštění není vypnutý. Musel jsem upravit bootloader.

Zatím zkus dát na začátek kódu

UCSRB = 0; a piny by měly chodit.