- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 66

Thema: Programm_Anpassungen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #15
    Benutzer Stammmitglied
    Registriert seit
    09.07.2007
    Beiträge
    42
    Hallo,

    ich habe an Euch eine große Bitte: Kann jemand das folgende Programm (nur kurz!) testen?
    Es müsste (besser: sollte! ) nach dem Laden blinken, dann 10 Zeilen mit a ... z zum PC senden.
    Die Prog.-Frakmente stammen noch von der "Urversion".
    Code:
    /* test.c
       Test zum Senden - asuro.h + -.c verkleinert und SerWrite(j) angepasst!
       Programm soll 10 Zeilen mit a ... z senden.
       SerWrite() enthaelt nur "wenn Speicher leer, dann senden"! */
    
    #include "asuro.h"
    
    int main(void)
    {
    	unsigned char i, j;
    	Init();
    	for(i=0;i<200;i++)
    	{
    	  for(j=0;j<20;j++) Sleep(0xFF);
    	  StatusLED(RED);
    	  for(j=0;j<20;j++) Sleep(0xFF);
    	  StatusLED(GREEN);
    	}
    	UCSRB |= 0x08;		// Sender ein
    	UCSRA |= 0x40;		// 'clear' transmitter flag 
    	for(i=1;i<11;i++)
    	{
    	 for(j='a';j<='z';j++)
    	 {
    	  SerWrite(j);
    	 }
    	 SerWrite('\n');
    	 SerWrite('\r');
    	}
    	while (!(UCSRA & 0x40))
    	;			// warten bis Uebertragung fertig
    	UCSRB &= ~0x08;		// Sender aus
    	StatusLED(YELLOW);
    	while(1)
    
    	;
    	return 0;
    }
    ---------------
    /* asuro.c */
    #include "asuro.h"
    
    volatile unsigned char count72kHz;
    
    SIGNAL (SIG_OUTPUT_COMPARE2)
    {
    	count72kHz ++;
    }
    
    void Init (void)
    {
    	TCCR2 = (1 << WGM21) | (1 << COM20) | (1 << CS20);
    	OCR2  = 0x6E; 
    	TIMSK |= (1 << OCIE2); 
    
    	UCSRA = 0x00;
    	UCSRB = 0x00;	
    	UCSRC = 0x86; 
    	UBRRL = 0xCF; 
    
    	DDRB = IRTX | LEFT_DIR | PWM | GREEN_LED; 
    	DDRD = RIGHT_DIR | FRONT_LED | ODOMETRIE_LED | RED_LED;
    
    	TCCR1A = (1 << WGM10) | (1 << COM1A1) | (1 << COM1B1);
    	TCCR1B = (1 << CS11);
    
    	//ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1); 
    
    	StatusLED(GREEN);
    
    	sei();
    }
    
    inline void StatusLED(unsigned char color)
    {
    	if (color == OFF)    {GREEN_LED_OFF; RED_LED_OFF;}
    	if (color == GREEN)  {GREEN_LED_ON; RED_LED_OFF;} 
    	if (color == YELLOW) {GREEN_LED_ON; RED_LED_ON;}
    	if (color == RED)    {GREEN_LED_OFF; RED_LED_ON;}
    }
    
    void SerWrite(unsigned char data)
    {
    	while(!(UCSRA & 0x20))
    	;
    	UDR = data;
    }
    
    void Sleep(unsigned char time72kHz)
    {
    	count72kHz = 0;
    	while (count72kHz < time72kHz);
    }
    FirstTry.zip (enthält alle files) beigeschlossen!

    Auswertung: Kommen _nicht_ alle Zeichen an, dann sollte man 'was ändern!)

    Vielen Dank schon 'mal im voraus!
    cu Helmut

    PS: Heute morgen konnte ich sehr über diverse Artikel lachen!
    Angehängte Dateien Angehängte Dateien

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test