Ideen gesucht: Spannungs-Signalwandlung
Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese
- Fritzler
- Beiträge: 12603
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: Ideen gesucht: Spannungs-Signalwandlung
Nee, das is nich Python, sondern C.
Da ist das nur ein "casting".
Da ist das nur ein "casting".
- KampfKeks_MRZ
- Beiträge: 382
- Registriert: So 11. Aug 2013, 17:52
- Wohnort: 52399 Merzenich
- Kontaktdaten:
Re: Ideen gesucht: Spannungs-Signalwandlung
Was jetzt, C oder C++. Das macht schon einen kleinen Unterschied.
Ich verstehe übrigen auch nicht, was Fritzler jetzt mit Python meint
- Fritzler
- Beiträge: 12603
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: Ideen gesucht: Spannungs-Signalwandlung
Hier gehts doch um Zahlumwandlung zu String?
Da kannste doch nicht einfach was nach int casten und wohin speichern.
On the fly Umwandlungen machen eher Hochsprachen udn das sind C/C++ lange nicht.
Also sag eher was die Zeile jetz machen soll, sonst führt das zu nix.
Da kannste doch nicht einfach was nach int casten und wohin speichern.
On the fly Umwandlungen machen eher Hochsprachen udn das sind C/C++ lange nicht.
Also sag eher was die Zeile jetz machen soll, sonst führt das zu nix.
Re: Ideen gesucht: Spannungs-Signalwandlung
Dann sollstest du dir dringent mal die Typen von C, C++ anschauen und wie man damit umgeht und was ein typ casting ist.KampfKeks_MRZ hat geschrieben: ↑Mo 2. Aug 2021, 17:56Öhm... Was bitte möchtest du mir sagen?
C(++) -> Sprache, die ich verwende.
Wenn dir jetzt jemand die Lösung präsentiert und du die zwar verwendest aber überhaupt nicht verstehst was da passiert, kommst du in C,C++ keinen Schritt vorran und läufst gegen die nächste Wand!!
mit buf = (int) data_buffer erlärst du halt blos, data_buffer ist ein INT, egal was da drin steht, dann steht halt in buf 5 als Zahl drin.
So geht das in C nicht !
Re: Ideen gesucht: Spannungs-Signalwandlung
Bitte das lesen:
https://openbook.rheinwerk-verlag.de/c_ ... ng_001.htm
und das:
https://www.c-howto.de/tutorial/variabl ... mwandlung/
Danach reden wir hier weiter.
https://openbook.rheinwerk-verlag.de/c_ ... ng_001.htm
und das:
https://www.c-howto.de/tutorial/variabl ... mwandlung/
Danach reden wir hier weiter.
Re: Ideen gesucht: Spannungs-Signalwandlung
Achja und das auch noch:
https://www.c-howto.de/tutorial/arrays-felder/
https://www.c-howto.de/tutorial/arrays-felder/
- Fritzler
- Beiträge: 12603
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: Ideen gesucht: Spannungs-Signalwandlung
Du hast das wichtigste Buch zu C vergessen:
https://de.wikipedia.org/wiki/The_C_Pro ... g_Language
https://de.wikipedia.org/wiki/The_C_Pro ... g_Language
Re: Ideen gesucht: Spannungs-Signalwandlung
Ich zeige hier mal einen Code von einem Projekt. Dort wird Temperatur gemessen und auch auf einem I2C LC-Display ausgegeben:
Das ist der Display-Ausgabeteil mit itoa wird der Integerwert in eine Zeichenkette umgewandelt.
Oder auch so, aus einem anderen Projekt:
Das ist der Display-Ausgabeteil mit itoa wird der Integerwert in eine Zeichenkette umgewandelt.
Code: Alles auswählen
printf_lcd(0,2,"EIS:",10);
itoa(t_out,buffer,10);
write_byte_lcd(8,2,warn);
printf_lcd(9,2,buffer,10);
printf_lcd(14,2,"C",10);
write_byte_lcd(13,2,0x80);
Code: Alles auswählen
char *bu="0";
lcd_gotoxy(0,2);
lcd_puts("fl0:");
lcd_gotoxy(5,2);
itoa(fl0,bu,10);
lcd_puts(bu);
Code: Alles auswählen
//************************************************************************
// Projekt Includes
//************************************************************************
#include "defines.h" // Projektdefinitionen
#include "lcd_dip204ks0073_spi_avr.c" // LCD-Funktionen
#include "ADC_Messung.h"
#include "taster.c"
//************************************************************************
// AVR/GCC Includes
//************************************************************************
#include <avr/eeprom.h>
#include <stdbool.h>
#include "main.h"
#include <avr/interrupt.h>
#include <avr/io.h> // IO-Grundfunktionen
#include <util/delay.h> // Pausenfunktionen
#include <string.h> // Stringfunktion
#include <stdio.h> // Standardfunktion
#include <stdlib.h> // Standardbibliothek
//************************************************************************
// Variablenbereich
//************************************************************************
struct lcd_struc lcd; // LCD Datensatz
unsigned char temp = 0; // Testvariable
unsigned char temp2 = 1; // Testvariable
unsigned int mess[1];
char buffer[4];
char warn;
int time;
bool motor=false;
bool kompr=false;
bool pause=false;
bool kpause=false;
int t_pause=0;
int t_timer=0;
int k_timer=0;
int t_tab[]=
{
15,16,18,19,20,21,22,23,24,25,
26,27,28,29,31,32,33,35,36,38,
39,41,42,45,47,48,49,51,52,54,
56,57,60,62,65,66,68,72,75,78,
80,81,83,85,87,89,92,95,97,99,
102,105,107,110,112,114,116,118,121,124,127
};
ISR(TIMER1_OVF_vect)
{
cli();
time++;
TCNT1=34268;
t_pause--;
k_timer--;
if (k_timer<=0)
{
k_timer=0;
kpause=false;
}
if (t_pause<=1)
{
pause=true;
t_pause=0;
}
else
{
pause=false;
}
if (pause)
{
t_timer++;
}
if (t_timer>=300)
{
t_timer=0;
pause=false;
t_pause=10;
}
sei();
};
ISR(PCINT1_vect){
t_pause=10;
};
#define Motor_an PORTC|= (1<<PC2)
#define Motor_aus PORTC &= ~(1<<PC2)
#define Kompr_an PORTC |= (1<<PC3)
#define Kompr_aus PORTC &= ~(1<<PC3)
// ********************************************************************
// Hauptprogramm
// ********************************************************************
int main (void) {
PCMSK1|=(1<<PCINT8);
PCICR|=(1<<PCIE1);
TCNT1=0xFA12;
TCCR1B|=(1<<CS12);
TIMSK1|=(1<<TOIE1);
sei();
tasten_init();
spi_master_init(); // Hardware-SPI Initialisierung als Master
init_lcd(); // LCD Initialisierung im SPI-Mode
DDRC|= ((1<<PC2)|(1<<PC3));
DDRC &=~(1<<PC0);
int t_out;
int t_soll_out;
int t_soll;
Motor_aus;
Kompr_aus;
t_soll=eeprom_read_word((uint16_t*)0);
t_timer=10;
while(1) {
/*--------------------------------------------------------------------------------------------*/
/*Tasten auswerten Sollwert Temp */
/*--------------------------------------------------------------------------------------------*/
tasten_auswerten();
if (get_taster(RUNTERK))
{
t_soll--;
taster_reset(RUNTERK);
}
if (get_taster(RUNTERL))
{
eeprom_write_word((uint16_t*)0, t_soll);
taster_reset(RUNTERL);
}
if (get_taster(HOCHK))
{
t_soll++;
taster_reset(HOCHK);
}
if (get_taster(HOCHL))
{
eeprom_write_word((uint16_t*)0, t_soll);
taster_reset(HOCHL);
}
if(t_soll>60){t_soll=60;};
if (t_soll<1){t_soll=1;};
/*--------------------------------------------------------------------------------------------*/
/*Tasten auswerten Motor und Kühlung*/
/*--------------------------------------------------------------------------------------------*/
if(get_taster(RECHTSK))
{
t_timer=0;
k_timer=10;
motor=!motor;
pause=false;
taster_reset(RECHTSK);
}
if (motor&&!pause)
{
Motor_an;
}
else
{
Motor_aus;
}
if(get_taster(LINKSK))
{
kompr=!kompr;
k_timer=0;
taster_reset(LINKSK);
}
if ((kompr&&!kpause)&&(t_soll-35<=(t_out-3)))
{
Kompr_an;
}
if (!kompr|| kpause|| (t_soll-35>=(t_out)))
{
Kompr_aus;
};
/*--------------------------------------------------------------------------------------------*/
/*Temperaturmessung*/
/*--------------------------------------------------------------------------------------------*/ mess[1]=messung(1);
for (int i=0;i<61;i++)
{
warn=' ';
if (mess[1]<15)
{
warn=0x3C;
}
if (mess[1]>127)
{
warn=0x3E;
}
if (mess[1]<=t_tab[i])
{
t_out=(i-35);
break;
}
}
printf_lcd(0,2,"EIS:",10);
itoa(t_out,buffer,10);
write_byte_lcd(8,2,warn);
printf_lcd(9,2,buffer,10);
printf_lcd(14,2,"C",10);
write_byte_lcd(13,2,0x80);
printf_lcd(0,0,"Kuehlung",10);
if (kompr)
{
printf_lcd(0,1,"AN ",10);
}
else
{
printf_lcd(0,1,"AUS",10);
}
printf_lcd(13,0,"Mischer",10);
if (pause&&motor)
{
printf_lcd(10,1,"PAUSE",10);
}
else
{
printf_lcd(10,1," ",10);
}
if (motor)
{
printf_lcd(17,1,"AN ",10);
}
else
{
printf_lcd(17,1,"AUS",10);
}
printf_lcd(0,3,"SOLL: +",10);
t_soll_out=t_soll-35;
itoa(t_soll_out,buffer,10);
printf_lcd(9,3,buffer,1);
write_byte_lcd(13,3,0x80);
printf_lcd(14,3,"C",10);
printf_lcd(16,3,"-",10);
}
}
Re: Ideen gesucht: Spannungs-Signalwandlung
Och neee .... Das ist zwar das "Standardwerk" zu C, aber die Sprache erlernen kann man (als Anfänger) damit nicht. Das ist eher etwas, um mal spezielle Dinge nachzuschlagen und einige "Kniffe" (z.B. "structs" und "unions") daraus abzuleiten, wenn man so einigermaßen vertraut ist mit C.Du hast das wichtigste Buch zu C vergessen:
https://de.wikipedia.org/wiki/The_C_Pro ... g_Language