- Labornetzteil AliExpress         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 31

Thema: V-USB wie muss ich es ändern?

  1. #21
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Wenn du dir die usbconfig.h durchliest, dann steht da drinnen das man die usbconfig_prototype.h verwenden soll.
    In meiner Konfiguration habe ich diese in usbconfig.h umbenannt.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  2. #22
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2011
    Beiträge
    27
    Nach einer neu Installation von AVR studio lief es habe es geschafft auf den chip zu brennen, jetzt ist die hälfte erledigt und jetzt ist die PC seite dran.
    Danke Leute für die Hilfe.

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2011
    Beiträge
    27
    So nach dem dem ganzen streß läuft es auch nur fasst, Daten kommen vom dem PC auch an. Da wollte ich mich jetzt an den Internen AD-Wandler heran wagen,
    am PC bekomme ich 1023 also 10-bit was ja eigentlich richtig ist.
    Nur der wert ändert sich nicht wenn ich nochmal den Befehl schicke zum lesen.
    Hier mal der Auszug, weil der Rest läuft ja.
    Code:
    uint16_t adc_Value = 0;
    uchar Buffer[11];
    
    void adc_init(void)
    {
    //ReferenzSpannung AVcc | Kanal 0 ADC0(PC0)
    //ADC enable| Singel Mode| Frequenzvorteiler F_CPU/128
    uint16_t result;
    ADMUX  = (1<<REFS0);
    ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
    
    ADCSRA |= (1<<ADSC);                  
    while (ADCSRA & (1<<ADSC) ) {}        
    result = ADCW;
    }
    
    /*ADC-channel-Funktion*/
    uint16_t ADC_Read( uint8_t channel )
    {
      ADMUX = (ADMUX & ~(0b00001111)) | (channel & 0b00001111);
      ADCSRA |= (1<<ADSC);            
      while (ADCSRA & (1<<ADSC) ) {}  
      return ADCW;                    
    }
    
    
    case USB_ADC:
    		adc_Value = ADC_Read(0);
    		itoa(ADCW, Buffer, 10);
    		usbMsgPtr = Buffer;
    		return sizeof(Buffer);
    Danke für die Tipps

    MfG exkluski

  4. #24
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Welchen µC verwendest du ? Die neueren haben eine interne 1,1 V Referenz.

    Des Weiteren würde ich den ADC per IRQ betreiben und den Wert nach jeder Messung in einer globalen uint16 Variable (hast du ja schon) speichern. Wenn vom PC die Anfrage kommt, wird diese nur mit dem Inhalt der Variable beantwortet und nicht eine separate Messung gestartet.

    itoa brauchst du im Übrigen gar nicht. Es reicht doch das obere und das untere Byte zu senden und beide am PC zusammen zu bauen.
    Geändert von ePyx (21.02.2012 um 15:48 Uhr)
    Grüße,
    Daniel

  5. #25
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2011
    Beiträge
    27
    Ich nutzte den Atmega8 mit 12 MHz Quarz und einem Poti.
    ein adc Interrupt ist glaube ich Überflüssig, die itoa wird doch gebraucht um ein int in char zu wandeln. hatte die mal weg gelassen und adc_Value direkt in usbMsgPtr geschrieben es kommt aber nichts an.

  6. #26
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Zitat Zitat von ExKluski Beitrag anzeigen
    die itoa wird doch gebraucht um ein int in char zu wandeln
    Nöö nur wenn du den int in ein char-Buffer hauen willst, also Eine Dezimalzahl (z.B. 10) in Ascii 0x40 umzuwandeln. An welchen Anschlüssen hängt dein Poti ? 5V und Masse ? Schleifer an ADC0 ?
    Grüße,
    Daniel

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2011
    Beiträge
    27
    An welchen Anschlüssen hängt dein Poti ? 5V und Masse ? Schleifer an ADC0 ?
    fast
    2.5V, masse und adc0

  8. #28
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Hast du schon mal versucht :

    Code:
    ADMUX |= (1<<REFS0) | (1<<REFS1)
    Also die Referenzspannung auf intern zu setzen ? Dann sollten 2,56 V am AREF-Pin anliegen. Die dann mit masse ans Poti und den Schleifer wie gehabt an deinen ADC0. Bei deiner Einstellung wird AVCC genommen, der auf 5V liegen sollte (plus 100nF Kerko)
    Grüße,
    Daniel

  9. #29
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2011
    Beiträge
    27
    der Poti war defekt, habe in getauscht und es läuft wie es soll.

    danke für die Hinweiße.
    MfG exkluski

  10. #30
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2011
    Beiträge
    27
    habe da nochmal eine frage bezüglich der Übertragung, weil ich bekomme die werte auf abfrage angezeigt.
    würde sie gern aber als wert von 0.00Volt bist X volt. dacjte ich könnte das so machen wie bei UART mit weil läuft es ja auch
    libprintf_flt.a
    libm.a und -Wl,-u,vfprintf
    eingebunden aber die nachkommastellen sind null.

    Code:
    case USB_ADC
                    DDRB  |= (1<<PB0);//Ausgang
    		PORTB |= (1<<PB0);//High
    		
    		ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion"
      		while (ADCSRA & (1<<ADSC) ) {}  // auf Abschluss der Konvertierung warten
    		
    		adc_Value = ADCW;
    		
    		adc_wert = adc_Value*faktor;
    		dtostrf(adc_wert,7,4, Buffer);
    		usbMsgPtr = Buffer;
    		PORTB &= ~(1<<PB0);//Low
    		return sizeof(Buffer);
    beim UART benutzte ich sprnitf hier hatte ich dtostrf gedacht ist ja kleiner als die sprintf.

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Ähnliche Themen

  1. Was muss ich studieren?
    Von Virus im Forum Jobs/Hilfen/Stellen - Gesuche und Angebote
    Antworten: 12
    Letzter Beitrag: 24.09.2009, 14:06
  2. Rds(on) in Pspice ändern/variieren - Modellparameter ändern?
    Von fraujansen im Forum Software, Algorithmen und KI
    Antworten: 2
    Letzter Beitrag: 31.03.2009, 14:35
  3. LCD: Wo muss der R/W hin?
    Von PCMan im Forum C - Programmierung (GCC u.a.)
    Antworten: 20
    Letzter Beitrag: 05.03.2007, 15:05
  4. uni- und bipolar was muss man wissen?
    Von Petop im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 24.05.2005, 17:52
  5. Was muss man wissen?
    Von MasterMelo90 im Forum Robby CCRP5
    Antworten: 8
    Letzter Beitrag: 22.08.2004, 13:22

Berechtigungen

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

Labornetzteil AliExpress