rs232 or usb

Guest #1449186
Rate this post
useful
not useful
Hey,

I am a novice in the microcontroller and i have since one Week a 
Problem.

I engraved this code below on mysmatcontrolM8 (s. picture).
But, i obtain only weird character although it is working property on 
STK500 with atmega8.

I have already verified the frequenz, the Baud Rate and all are OK.

However, i obtain only weird character

I viewed the mysmartcontrolM8 product description: power supply via USB 
connection, 5 V or 3.3 V.
I think, that maybe the failing is the diference between the power 
supply of my PC and mysmatcontrolM8 (atmega8) !!! is that right!?!  And 
please which transformer  can i use?

Or, where is my fault!?!
can somebody help me!!!

thank you

1
#ifndef F_CPU
2
/* In the new version of the WinAVR/Mfile Makefile guideline One can defined F_CPU in the Makefile, a repeated 
3
   definition here would lead to a compiler warning . therefore "prevention" through    #ifndef/#endif
4

5
   This "Prevention" can lead to Debugger, if AVRStudio use a another, not the hardware fitting Clock rate: 
6
   Then the    following definition doesn't use, but instead the default value (1 MHz?) of AVRStudio - hence 
7
   the Output of a warning if F_CPU yet does not define:*/ 
8
#warning "F_CPU was not defined yet, now make up with 3686400"
9
#define F_CPU 3686400L // Systemtakt in Hz - define as  long>> Without errors in the computation 
10
#endif
11

12

13
#define BAUD 9600L
14
#define UBRR_VAL ((F_CPU+BAUD * 8)/(BAUD*16)-1)     //clever round
15
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))         //real baud rate
16
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD-1000)     //Error per thousand
17

18

19
#if ((BAUD_ERROR>10)||(BAUD_ERROR<-10))
20
#error Systematic error in the baud rate more than 1% and thus too high!
21
#endif
22

23

24
#include <avr/io.h>
25
#include <stdlib.h>
26
#include <inttypes.h>
27
#include <util/delay.h>
28

29

30

31
void USART_Init(void) 
32
{
33
  
34
  UBRRH = (unsigned char)(UBRR_VAL>>8);  // Set baud rate
35
  UBRRL = (unsigned char)UBRR_VAL;
36
  
37
  UCSRB |= (1<<RXEN)|(1<<TXEN);    // Enable receiver and transmitter
38
  
39
  UCSRC = (1<<URSEL) | (1<<UCSZ0)|(1<<UCSZ1);  // Set frame format: 8data, 1stop bit        
40

41
}//end USART_Init()
42

43

44
void USART_Putc(unsigned char c)
45
{
46
  while (!(UCSRA & (1<<UDRE))); // Do nothing until data have been transmited 
47
    
48
  UDR = c;                // Put data into Buffer, sends the data
49
  _delay_ms(10);   
50
}//end USART_Putc()
51

52

53
void USART_Puts (char *string)
54
{
55
    while( *string != '\0' )  //as long as *string != '\0' so unlike the "stringer end-character"
56
    {  
57
        USART_Putc(*string);
58
        string++;
59
    }
60
}//end USART_Puts()
61

62
int main(void) 
63
{
64
  USART_Init();
65
  USART_Puts("\r\n");
66
  while(1) 
67
  {
68
    USART_Puts("Hey !!!!");  
69
  }
70

71
   return 0;                     
72
} //end main()
Attached files:
Guest #1449222
Rate this post
useful
not useful
How did you connect the board to your PC?  I wonder about the physical 
connection.

The reason why I'm asking is: I miss to see some kind of level converter 
on the board (which doesn't necessarily mean it's not there).

Reply

Please log in before posting.

or

Log in with Google account

Registration is free and takes only a minute.

Register now