#include <avr/io.h>
void USART_Init(unsigned int ubrr)
{
/* Set baud rate */
UBRR0H = (unsigned char)(ubrr>>8);
UBRR0L = (unsigned char)ubrr;
/* Enable the transmitter */
UCSR0B = (1<<TXEN0);
}
void USART_Transmit(unsigned char data)
{
/* Wait for empty transmit buffer */
while( !(UCSR0A & (1<<UDRE0)));
/* Put data into buffer, send the data */
UDR0 = data;
}
int main(void) {
USART_Init(25); /* 19k2 @ 8MHz */
for(;;) {
USART_Transmit('a');
USART_Transmit('\r');
USART_Transmit('\n');
}
}
Med PC:ns terminalprogram inställt i 19k2/8N1 så syns där inte ett knyst. Gör jag nåt uppenbart fel?
När jag kör igång terminalprogrammet (TuTTy) så står det i titelraden "COM1 - TuTTy". När jag slår på AVR:en (& co) byter det till " - TuTTy (Disconnected)", så nånting verkar komma fram iaf.
Det första jag ser är att du har satt Rxd till Rxd vilket är fel (vad jag vet), Rxd skall kopplas till Txd, detta för att när tex datorn skickar skall mikrkontrollern temot och viceversa.
EDIT: Alltså : Txd -> T1IN ; Rxd -> T1OUT och "likadant" mellan max232 och datorporten.
Jag kör med Atmega 128 och en seriell till USB-krets istället för MAXxxx så den fysiska kopplingen är inte lika, dock verkar koden funka. TestTerm var ett terminalprogram jag hittade på nätet. http://www.swcab.nu/Projbank1.html
Nu försökte jag programmera CKDIV8-säkringen till en 1:a med kommandot "avrdude -v -p m168 -c dapa -e -U lfuse:w:0xe2:m" men nu svarar inte kretsen längre Vad gjorde jag fel?
Ajajaj, det skull jag ha varnat dig för, jag använder inte själv avrdude så jag vet inte vad du gjorde fel men om fusebitarna blir felställda så att kretsen gå på extern kristall svarar den inte på programmeringen utan att man sätter en extern kristall (eller någon annan typ av ocsillator).
EDIT: Vad programmerar du med för programmerare? Har du någon kristall du kan koppla till kretsen?
Jag har inte använt AVR, men jag förvånas alltid av att det spelar
roll hur den var konfiggad *förra* gången när man ska programmera
om den på nytt. Borde det inte alltid vara möjligt att programmera
om den helt från början ??