Hallo Dieter,
danke für die Seite werde sie mir gleich mal an sehen
so sieht es jetzt auch weiß du wie man eingänge im aver studio simuliert ?Code:/************************************** mains.c Autor: Numberfive versuchen das ganze mal zu verstehen. *************************************/ #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #define F_CPU 16000000 // 16 MHz #define UART_BAUD_RATE 19200 // 19200 Baud #define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*161)-1) typedef unsigned char BYTE; typedef unsigned short WORD; BYTE GetKeyCode(void); //routine zum lesen der tasten auf dem board void InitCom(void); void SendText(void); void SendBinary(void); int main (void) { //hauptprg hier geht der controler immer als erstes hin InitCom(); sbi(PORTA,PINA7); //pull ub widerstand einschalten warum weiß ich auch noch nicht //Analogport init outp((1<<ADEN) & 7,ADCSR); // teiler auf 7 damit der bei 16 Mhz Tut BYTE Taste; for(;;) { //endlos schleife für das haupt prg sonst hällt das prg an Taste = GetKeyCode(); if ( Taste != 0) { switch(Taste) { case 1: SendText(); break; case 2: SendBinary(); break; } } } } BYTE GetKeyCode(void) { WORD Result = 0; BYTE Taste = 0; //Init ADwandler ADCSRA = (1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(0<<ADIE)|(7<<ADPS2); // wir messen Porta Pin 7 ADMUX = (1<<PINA7); // was diese zeile bedeutet weiß ich nicht sbi(ADCSRA,ADSC); // warten bis messung abgesclossen ist und wert gültig loop_until_bit_is_set(ADCSRA,ADSC); // den wert aus dem register holen Result = inw(ADCL); // Wiederstands Netzwerk interpretieren if (Result < 1010) { if(Result >= 410 && Result <= 450) { Taste = 1; } if(Result >= 340 && Result <= 380) { Taste = 2; } if(Result >= 265 && Result <= 305) { Taste = 3; } if(Result >= 180 && Result <= 220) { Taste = 4; } if(Result >= 100 && Result <= 130) { Taste = 5; } } return Taste; } void SendText(void) { } void SendBinary(void) { } void InitCom(void) { /* Set baud rate */ UBRRH = (BYTE) (UART_BAUD_SELECT>>8); UBRRL = (BYTE) UART_BAUD_SELECT; /* Enable receiver and transmitter */ UCSRB = (1<<RXEN)|(1<<TXEN); /* Set frame format: 8data, 1stop bit */ UCSRC = (1<<URSEL)|(0<<USBS)|(3<<UCSZ0); }
Gruß und dank für deine mühe







Zitieren
Lesezeichen