atmega128 pwm uart

Gast #720891
Lesenswert?

Hallo
ich hab meinen mega128 im M103C mode laufen lassen nun bruach ich Portc 
als input, daher hab ich es raus genommen.
Leider funktioniert nun mein uart oder pwm nicht mehr.

Danke
Martin


1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4
#define BAUD        9600L
5
#define UBRR_BAUD   ((16000000/(16UL*BAUD))-1)
6
//function definition
7
void uart_init(void)
8
{
9

10
UBRR0H |= (uint8_t) (UBRR_BAUD>>8);
11
UBRR0L |= (uint8_t) (UBRR_BAUD);
12
UCSR0B |= ((1<<RXCIE0) | (1<<RXEN0)|(1<<TXEN0));    /* Enable receiver */
13
UCSR0C |= ((1<<UCSZ10) | (1<<UCSZ00)); //8 bits
14

15
}
16
void pwm_init(void)
17
{  DDRB=0x00;
18
   DDRB|=(1<<PB7)|(1<<PB6)|(1<<PB5) | (1<<PB4);
19
   
20
   TCCR0|=(1<<WGM00)|(1<<COM01)|(1<<CS01);
21
   TCCR2|=(1<<WGM20)|(1<<COM21)|(1<<CS20);
22
   TCCR1A|= (1<<WGM10)|(1<<COM1A1)|(1<<COM1B1);
23
   TCCR1B|= (1<<CS10);
24
   
25
   OCR0=128;
26
   OCR1A=128;
27
   OCR1B=128;
28
   OCR2=128; 
29
}
30

31

32
void put_uart_c(uint8_t c)
33
{
34
while(!( UCSR0A & (1<<UDRE0)));
35
   UDR0 = c;
36
return;
37
}
38

39
uint8_t get_data(void)
40
{
41
  while(!(UCSR0A & (1<<RXC0)));
42
  return UDR0;
43
}
44
ISR (USART0_RX_vect)
45
{
46
    char c=UDR0;
47
   put_uart_c(c);
48
}
49
int main(void){
50

51

52
   
53
   sei();
54
   uart_init();
55
   pwm_init();
56
   put_uart_c('H');
57
   
58

59
while(1);
60
return 0;
61
}
Gast #721030
Lesenswert?

das ist alles schon die ganze zeit auf 128 eingestellt die interrupts 
funktionieren auch aber sobalt ich den urat initialisere gehen die pwms 
nicht mehr ... einefach super komisch bekomme da 1.3V (steigent)  an die 
ports

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren