moi, onko tässä koodissa jotain pielessä vai onko mulla RS323 ongelmia mun laitteistossa, kun ei tuu TeraTermiin mitään.
Pitäis tulla toi teksti 'Tietokone'
Comments: tulostaa merkkitaulukon sarjaporttiin
***********************************************/
#include <avr/io.h>
#include "viive.h"
#include <stdio.h>
#define XTAL 8000000 // kiteen taajuus
#define BAUD 9600 // sarjaportin nopeus 9600 bps
void Put_char(char merkki);
void Put_char(char merkki)
{
loop_until_bit_is_set(UCSRA, UDRE); // tarkista onko tx-puskuri tyhjä
UDR = merkki; // UART Data Register
}
//sarjaportin asetukset
void Init_sarja(void)
{
UBRRH=0x00;
UBRRL=0x33; //des 51(U2X=0)
UCSRA=0x00;
UCSRB=0x18; //RXEN, TXEN
UCSRC=0x86; // URSEL, UCSZ1, UCSZ0 --> 1
}
int main(void)
{
Init_sarja();
unsigned char i;
char taulu[9] = {'T', 'i', 'e', 't', 'o','k', 'o', 'n', 'e'};
// merkkitaulukko, yksittäiset merkit kehystetään heittomerkeillä
while(1)
{
for(i = 0; i < 9; i++)
{
Put_char(taulu[i]); // tulostetaan taulukon sisältö merkki kerrallaan
Delay_ms(50);//50
}
Put_char(0x0A); // LF, Line Feed, rivin vaihto
Put_char(0x0D); // CR, Carridge Return, telan palautus rivn alkuun
Delay_ms(500); //500
}
}ONKS täällä ketään, joka on toiminut Atmelin ATmega16 mikroprosessorin parissa. Olis kiva saada hjälppiä.
En edelleenkään ole ohjelmoinut avr:iä, mutta yksi kohta minua ihmetyttää koodissa.
Asetat BAUD:n definellä, mutta en näe minne ko. arvo menee.
Tietenkin saattaa olla että BAUD-arvo imaistaan rivillä:
#include <avr/io.h>
Mutta eikö siinä tapauksessa ko. arvo pitäisi antaa ennen icludea, jotta arvo olisi ladattaessa.
Eikö avr:ssä ole mitään Set_Baud-funktiota, tai vastaavaa?
Tosin samalla, jos BAUD-arvo pitää laittaa ennen includea, pitäneen laittaa myös XTAL-arvo.
Tosin virhettä voi myös yrittää tutkia muutenkin kuin tutkimalla mitä terminaaliin tulee.
Laittamalla avr-ikuiseen luuppiin tulostamaan tekstiä, ja katsomalla oskiloskoopilla lähettääkö se mitään.
Heikkoja ovat arvaukseni, mutta vastaapahan ainakin joku jotakin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.