Forum: Compiler & IDEs atmega128 pwm uart


von MartinN (Gast)


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
}

von Johannes M. (johnny-m)


Lesenswert?

Hast Du denn jetzt auch den Mega128 im Makefile (oder AVRStudio) 
eingestellt? Und nachgesehen, ob die Interrupt-Vektornamen identisch 
sind?

von MartinN (Gast)


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

von MartinN (Gast)


Lesenswert?

jemand noch ne idee ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.