Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Buonasera, volevo chiedervi un aiuto su un programma in C, allego il file e il codice.
Non riesco ad arrivare alla soluzione, volevo chiedervi se qualcuno di voi potrebbe darmi
qualche consiglio. E' un test che devo consegnare venerdi mattina, per un'azienda.
Codice sorgente - presumibilmente C++
#include <stdio.h>
#include <iostream> //system pause
typedefstruct{
char DIO_PA_8[8];// [8] perchè la piu lunga è STD_HIGH
char DIO_PA_9[8];
}
dio_level_t;
void Start_Display(int n)
{
switch(n)
{
case 0:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 1:
Dio_WriteChannel(DIO_PA_0, STD_LOW);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 2:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_LOW);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 3:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 4:
Dio_WriteChannel(DIO_PA_0, STD_LOW);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 5:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_LOW);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 6:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_LOW);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 7:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 8:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 9:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
}
};
int main()
{
dio_level_t Dio_ReadChannel();
static uint32_t delayMs=1000;// che significa static uint32_t??????
Se non spieghi cosa dovrebbe fare il programma e cosa non va, come si fa a rispondere?
Scusa poi, ma se l'azienda ti chiede qualcosa e tu non hai il forum per aiutarti, cosa fai?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
Mi servirebbe un'idea su come implementare un algoritmo che:
riceva in ingresso questa stringa
char inputSeq[] = ("3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489");
e stampi su 6 display a 7 segmenti i valori in forma,sequenziale; tipo:
3
3.
3.1
3.14
3.141
3.1415
3.14159 una volta accessi tutti e sei i display, inizia lo shift
141592 ecc
Al post precedente avevo caricato l'allegato, ma non appare.
Se vuoi puoi dare alla azienda i miei contatti, io so farlo.
Pagano bene?
Bella risposta anche se un po' cattivella ... :-)
In effetti, se non sai fare questo semplice codice, mi dispiace ma non credo potrai restarci molto in azienda.
A meno che questo non sia un semplice esercizio scolastico che tu vuoi farti risolvere dal forum ... potresti anche dirlo senza problemi ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
sono riuscito ad implementarlo, però ho problemi a far accendere la virgola.
Come ho fatto adesso è valido solo per numeri senza virgola e a me serve verificare il funzionamento su numeri con virgola.
Codice sorgente - presumibilmente C++
#include <stdio.h>
#include <iostream> //system pause
typedefstruct{
char DIO_PA_8[8];// [8] perchè la piu lunga è STD_HIGH
char DIO_PA_9[8];
}
dio_level_t;
void Start_Display(int n)
{
switch(n)
{
case 0:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 1:
Dio_WriteChannel(DIO_PA_0, STD_LOW);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 2:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_LOW);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 3:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 4:
Dio_WriteChannel(DIO_PA_0, STD_LOW);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 5:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_LOW);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 6:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_LOW);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 7:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 8:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 9:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
}
};
int main()
{
dio_level_t Dio_ReadChannel();
static uint32_t delayMs=1000;// che significa static uint32_t??????
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
Mannaggia non conosco VHDL. Allora ti aiuto, ma metti una parola buona su di me.
Codice sorgente - presumibilmente C/C++
static uint32_t delayMs= 1000; // che significa static uint32_t??????
uint32_t bedeutet, dass delayMs eine 32-bit unvorzeichene Zahl ist. Auf eine 32-bit Architektur ist es dasselbe wie unsigned int.
Static heißt, dass die Variable während der Ausführung in einer unverändbaren Addresse steht. In diesem Zusammenhang ist static ganz unnötig.