Projet

Général

Profil

Actions

Feature #14290

fermé

Programmer le pic 18f sur Mplab pour le joystick

Ajouté par Anonyme il y a plus de 2 ans. Mis à jour il y a plus d'un an.

Statut:
Closed
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Début:
28/10/2022
Echéance:
% réalisé:

100%

Temps estimé:
(Total: 8:00 h)
Sprint:

Fichiers

Joy1.X.zip (271 ko) Joy1.X.zip Anonyme, 25/11/2022 16:23
Joy1.X - Copie.zip (289 ko) Joy1.X - Copie.zip Version finale Anonyme, 25/11/2022 16:26

Sous-tâches 3 (0 ouverte3 fermées)

Task #14484: Prise en main du sujetClosedPapa Abdoulaye NDIAYE28/10/2022

Actions
Task #14485: création du codeClosedPapa Abdoulaye NDIAYE28/10/2022

Actions
Task #14486: validationClosedPapa Abdoulaye NDIAYE28/10/2022

Actions

Mis à jour par Anonyme il y a plus de 2 ans

  • Temps estimé mis à 8:00 h

Sur le projet Plamobo, en tant que développeur j'ai une carte avec un pic 16f sur laquelle je connecte un joystick afin de contrôler le robot.
J'ai besoin du code (en C) sur Mplab pour controler le robot.

Vous trouverez la datasheet du joystick en pièce jointe.

Mis à jour par Anonyme il y a plus de 2 ans

  • Sujet changé de Programmer le pic 16f sur Mplab pour le joystick à Programmer le pic 18f sur Mplab pour le joystick

Mis à jour par Louis FOUCHER il y a plus de 2 ans

  • Version cible mis à Polytech Projets GE - Première Itération 2022

Mis à jour par Louis FOUCHER il y a plus de 2 ans

  • Version cible changé de Polytech Projets GE - Première Itération 2022 à Polytech Projets GE - Deuxième Itération 2022

Mis à jour par Louis FOUCHER il y a plus de 2 ans

  • Sujet changé de Programmer le pic 18f sur Mplab pour le joystick à Programmer le pic 18f sur Mplab pour le joystick
  • Statut changé de New à In Progress

Mis à jour par Papa Abdoulaye NDIAYE il y a plus de 2 ans

#if defined(_XC)
#include <xc.h> /* XC8 General Include File /
#elif defined(HI_TECH_C)
#include <htc.h> /
HiTech General Include File /
#elif defined(
_18CXX)
#include <p18cxxx.h> /
C18 General Include File */
#endif

#if defined(__XC) || defined(HI_TECH_C)

#include <stdint.h> /* For uint8_t definition /
#include <stdbool.h> /
For true/false definition */
#include <stdio.h>
#include<stdlib.h>
#include <string.h>
#include <pic18f45k50.h>

#endif

#include "system.h" /* System funct/params, like osc/peripheral config /
#include "user.h" /
User funct/params, such as InitApp */

#define _XTAL_FREQ 4000000

#pragma config FOSC=INTOSCIO
#pragma config WDTEN=OFF
#pragma config MCLRE=OFF
#pragma config LVP=OFF

/**Je configure 1 sortie PWM sur les I/O C1**/

void PWM_init() {
//PWM period = [(PR2) + 1] x 4 x Tosc x (TMR2 prescale value)
//PR2=(period/ToscxTMR2prescalex4)-1

short int period = 1/1000 ; // ms hz
PR2=(((period)*_XTAL_FREQ)/16)-1;
//PR2=100;//Period Register 2: defini la periode de l MLI
CCPR1L=12;
CCP1CON=0b00001100;//SET PWM Mode
CCPR2L=12;
CCP2CON=0b00001100;//SET PWM Mode
T2CONbits.TMR2ON=1;//Set timer 2
}

void PWM1 {
duty_cycle=(duty_cycle-511)/(1023-511);
CCPR1L=PR2*duty_cycle/100;
}

void PWM2 {
duty_cycle=(511- duty_cycle)/(511);
CCPR2L=PR2*duty_cycle/100;
}

void ADC_Init() {
TRISA = 0xff; /*set as input port*/
ADCON1 = 0x0e; /*ref vtg is VDD and Configure pin as analog pin*/
ADCON2 = 0x92; /*Right Justified, 4Tad and Fosc/32. /
ADRESH = 0; /*Flush ADC output Register
/
ADRESL = 0;
}

int ADC_Read(int channel) {
int digital;
ADCON0 =(ADCON0 & 0b11000011)|((channel<<2) & 0b00111100); /*channel 0 is selected i.e (CHS3CHS2CHS1CHS0=0000)
and ADC is disabled i.e ADON=0*/
ADCON0 |= ((1<<ADON)|(1< while(ADCON0bits.GO_nDONE==1); /*wait for End of conversion i.e. Go/done'=0 conversion completed*/
digital = (ADRESH*256) | (ADRESL); /*Combine 8-bit LSB and 2-bit MSB*/
return(digital);
}

void main(void) {
/* Configure the oscillator for the device */
ConfigureOscillator();

/* Initialize I/O and Peripherals for application /
InitApp();
PWM_init();
ADC_Init();
/
TODO &lt;INSERT USER APPLICATION CODE HERE&gt; */
ANSELC=0;
TRISCbits.TRISC1=0;//PWM1
TRISCbits.TRISC2=0;//PWM2
int x,y;
while(1)
{
x=ADC_READ(0);
if(x>511)
{
PMW1(x);
}
else {
PMW2(x);
}
}

}

Mis à jour par Anonyme il y a plus de 2 ans

  • Statut changé de In Progress à Closed

Mis à jour par Anonyme il y a plus de 2 ans

Mis à jour par Anonyme il y a plus de 2 ans

Actions

Formats disponibles : Atom PDF