Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Conversation opened. 1 read message.
- Skip to content
- Using Gmail with screen readers
- Search
- Gmail
- COMPOSE
- Labels
- Inbox (974)
- Starred
- Important
- Sent Mail
- Drafts
- Personal
- Travel
- More
- Hangouts
- More
- 1 of 1,571
- Print all In new window
- Fwd: bagi
- Inbox
- x
- Milos Tomic
- Attachments9:33 AM (10 hours ago)
- to me
- ---------- Forwarded message ----------
- From: "Nebojsa Sapic" <sapic94@gmail.com>
- Date: Jun 7, 2017 21:00
- Subject: Fwd: bagi
- To: <milost1995@gmail.com>
- Cc:
- Sent from my iPhone
- Begin forwarded message:
- From: Djole Savic <djole12@gmail.com>
- Date: June 5, 2017 at 19:10:04 GMT+2
- To: Nebojsa Sapic <sapic94@gmail.com>
- Subject: bagi
- Attachments area
- Click here to Reply or Forward
- 1.62 GB (10%) of 15 GB used
- Manage
- Terms - Privacy
- Last account activity: 25 minutes ago
- Details
- Milos Tomic
- milost1995@gmail.com
- Show details
- sbit BREAK_LAMPS at GPIOE_ODR.B1;
- sbit HEAD_LAMPS at GPIOE_ODR.B3;
- sbit TURN_L at GPIOC_ODR.B4;
- sbit TURN_R at GPIOE_ODR.B2;
- sbit MAIN_BEAM at GPIOB_ODR.B6;
- //BUGGY COMMANDS
- #define CMD_DRIVE 0x01
- #define CMD_BREAK 0x02
- #define CMD_RESPOND 0x03
- #define CMD_SPIN 0x04
- unsigned int SPEED_L;
- unsigned int SPEED_R;
- unsigned int PWM_A_PERIOD;
- unsigned int PWM_B_PERIOD;
- unsigned int PWM_C_PERIOD;
- unsigned int PWM_D_PERIOD;
- extern char writeBuff[32];
- extern short readBuff[32];
- char old_cmd = CMD_BREAK;
- char txPipe;
- void Init_Buggy() {
- //GPIO
- GPIO_Digital_Output (&GPIOE_BASE, _GPIO_PINMASK_1 | _GPIO_PINMASK_2 | _GPIO_PINMASK_3);
- GPIO_Digital_Output (&GPIOB_BASE, _GPIO_PINMASK_6);
- GPIO_Digital_Output (&GPIOC_BASE, _GPIO_PINMASK_4);
- //BAT VSENSE
- ADC_Set_Input_Channel(_ADC_CHANNEL_13); //ADC on PC3
- Adc1_Init();
- //PWM
- SPEED_L = 0;
- SPEED_R = 0;
- PWM_A_PERIOD = PWM_TIM4_Init(20000);
- PWM_B_PERIOD = PWM_TIM4_Init(20000);//PWM_A_PERIOD;
- PWM_C_PERIOD = PWM_TIM9_Init(20000);
- PWM_D_PERIOD = PWM_TIM3_Init(20000);
- PWM_TIM4_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL3);
- PWM_TIM4_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL4);
- PWM_TIM9_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL1);
- PWM_TIM3_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL3);
- }
- //postavljanje na koliko vremena ce se lampice paliti
- void HeadLamps_Blink() {
- HEAD_LAMPS = 1;
- delay_ms(200);
- HEAD_LAMPS = 0;
- delay_ms(500);
- HEAD_LAMPS = 1;
- delay_ms(200);
- HEAD_LAMPS = 0;
- }
- //red blinkanja lapmica
- void TurnLamps_Blink() {
- char n;
- for(n=0; n<7; n++) {
- TURN_L = ~ TURN_L;
- TURN_R = ~ TURN_R;
- delay_ms(200);
- }
- TURN_L = 0;
- TURN_R = 0;
- }
- //red blinkaca desnih lampica
- void TurnLamps_Blink_R() {
- char n;
- for(n=0; n<7; n++) {
- TURN_R = ~ TURN_R;
- delay_ms(200);
- }
- TURN_R = 0;
- }
- //ugasiti lampice
- void Lights_Off() {
- }
- //zaustaviti buggy-ja
- void Break_Buggy() {
- SPEED_L = 0;
- SPEED_R = 0;
- PWM_TIM4_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL3);
- PWM_TIM4_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL4);
- PWM_TIM9_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL1);
- PWM_TIM3_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL3);
- }
- static void Full_Circle_Left() {
- double dbl_temp = 3.1;
- unsigned int spin_speed;
- Break_Buggy();
- spin_speed = (unsigned int) (PWM_D_PERIOD * dbl_temp);
- PWM_TIM3_Set_Duty(spin_speed, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_D right_forward
- spin_speed = (unsigned int) (PWM_B_PERIOD * dbl_temp);
- PWM_TIM4_Set_Duty(spin_speed, _PWM_NON_INVERTED, _PWM_CHANNEL4); //PWM_B left_reverse
- TURN_L = ~TURN_L;
- TURN_R = ~TURN_R;
- }
- static void Test_Drive() {
- Break_Buggy();
- PWM_TIM4_Set_Duty(PWM_A_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_A left_forward
- PWM_TIM3_Set_Duty(PWM_D_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_D right_forward
- delay_ms(500);
- Break_Buggy();
- PWM_TIM4_Set_Duty(PWM_B_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL4); //PWM_B left_reverse
- PWM_TIM9_Set_Duty(PWM_C_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL1); //PWM_C right_reverse
- delay_ms(500);
- Break_Buggy();
- }
- static void Test_Drive_2() {
- Break_Buggy();
- PWM_TIM4_Set_Duty(PWM_A_PERIOD >> 1, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_A left_forward
- PWM_TIM9_Set_Duty(PWM_C_PERIOD >> 1, _PWM_NON_INVERTED, _PWM_CHANNEL1); //PWM_C right_reverse
- delay_ms(200);
- Break_Buggy();
- }
- static void Full_Circle_Right() {
- //double dbl_temp = (double)readBuff[6] / 100;
- double dbl_temp = 0.5;
- unsigned int spin_speed;
- Break_Buggy();
- spin_speed = (unsigned int) (PWM_A_PERIOD * dbl_temp);
- PWM_TIM4_Set_Duty(spin_speed, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_A left_forward
- spin_speed = (unsigned int) (PWM_C_PERIOD * dbl_temp);
- PWM_TIM9_Set_Duty(spin_speed, _PWM_NON_INVERTED, _PWM_CHANNEL1); //PWM_C right_reverse
- TURN_L = ~TURN_L;
- TURN_R = ~TURN_R;
- }
- //kretanje buggy-ja napred
- static void Forward(int times) {
- int i;
- Break_Buggy();
- PWM_TIM4_Set_Duty((unsigned int) (PWM_A_PERIOD * 0.2), _PWM_NON_INVERTED, _PWM_CHANNEL3);
- PWM_TIM3_Set_Duty((unsigned int) (PWM_D_PERIOD * 0.2), _PWM_NON_INVERTED, _PWM_CHANNEL3);
- //PWM_TIM4_Set_Duty(PWM_A_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_A left_forward
- //PWM_TIM3_Set_Duty(PWM_D_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_D right_forward
- for(i = 0; i < times; i += 1) {
- delay_ms(1);
- }
- Break_Buggy();
- }
- //isto kretanje buggy-ja napred
- static void Forward_1() {
- Break_Buggy();
- PWM_TIM4_Set_Duty(PWM_A_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_A left_forward
- PWM_TIM3_Set_Duty(PWM_D_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_D right_forward
- delay_ms(150);
- Break_Buggy();
- }
- //kretanje buggy-ja desno
- static void Right(int times) {
- int i;
- Break_Buggy();
- PWM_TIM9_Set_Duty((unsigned int) (PWM_C_PERIOD * 0.5), _PWM_NON_INVERTED, _PWM_CHANNEL1); //PWM_C right_reverse
- PWM_TIM4_Set_Duty((unsigned int) (PWM_A_PERIOD * 0.5), _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_A left_forward
- for(i = 0; i < times; i += 1) {
- delay_ms(1);
- }
- Break_Buggy();
- }
- //kretanje buggy-ja levo
- static void Left(int times) {
- int i;
- Break_Buggy();
- PWM_TIM4_Set_Duty((unsigned int) (PWM_B_PERIOD * 0.5), _PWM_NON_INVERTED, _PWM_CHANNEL4); //PWM_B left_reverse
- PWM_TIM3_Set_Duty((unsigned int) (PWM_D_PERIOD * 0.5), _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_D right_forward
- for(i = 0; i < times; i += 1) {
- delay_ms(1);
- }
- Break_Buggy();
- }
- //kretanje buggy-ja unazad
- static void Back(int times) {
- int i;
- Break_Buggy();
- PWM_TIM4_Set_Duty(PWM_B_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL4); //PWM_B left_reverse
- PWM_TIM9_Set_Duty(PWM_C_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL1); //PWM_C right_reverse
- for(i = 0; i < times; i += 1) {
- delay_ms(1);
- }
- Break_Buggy();
- }
- int lefttt = 0;
- static void Circle_right(int times) {
- int i = 0;
- for(i; i < times; i++) {
- Right(13);
- Forward(8);
- }
- }
- static void Circle_left(int times) {
- int i = 0;
- for(i; i < times; i++) {
- Left(13);
- Forward(8);
- }
- }
- //nameštanje kako ce se kretati buggy
- static void Test_Drive_3() {
- Forward(50); //napred
- // if(lefttt == 0) {
- // Circle_right(8);
- // } else if(lefttt == 1) {
- Circle_right(7);
- // }
- Forward(50);
- Circle_left(8);
- // Forward(30); //naprede
- // Left(30); //levo
- // Forcircle_right
- }
- int circle_right_time = 1;
- int Circle_right_time1 = 50;
- static void Circle_right1(int times) {
- int i = 0;
- for(i; i < times; i++) {
- Right(circle_right_time1);
- Forward(1);
- }
- }
- static void Test_Drive_4() {
- while(1) {
- // circle_right_time = circle_right_time + 1;
- // circle_right_time1 = circle_right_time1 - 1;
- // Circle_right1(circle_right_time);
- // Forward(circle_right_time);
- circle_right_time1 = circle_right_time1 - 1;
- if(circle_right_time1 == 0) {
- Circle_right_time1 = 50;
- }
- Right(circle_right_time1);
- Forward(1);
- }
- }
- //pokretanje buggy-ja
- void Start_Buggy() {
- PWM_TIM4_Start(_PWM_CHANNEL3, &_GPIO_MODULE_TIM4_CH3_PB8);
- PWM_TIM4_Start(_PWM_CHANNEL4, &_GPIO_MODULE_TIM4_CH4_PB9);
- PWM_TIM9_Start(_PWM_CHANNEL1, &_GPIO_MODULE_TIM9_CH1_PE5);
- PWM_TIM3_Start(_PWM_CHANNEL3, &_GPIO_MODULE_TIM3_CH3_PB0);
- // HeadLamps_Blink(); //postavljanje na koliko vremena ce se lampice paliti
- // Test_Drive(); //kretanje rada lampica
- // Test_Drive_2(); // kretanje rada lampica
- Test_Drive_4(); //namestati kako ce se kretati buggy
- Break_Buggy(); //zaustaviti buggy-ja
- }
- void Drive_Buggy() {
- double dbl_temp;
- char dir = readBuff[5];
- char vel_left = readBuff[6];
- char vel_right = readBuff[7];
- if (dir != 0) { //reverse direction
- //left motors
- dbl_temp = (double)vel_left / 100; //Convert received speed in %
- SPEED_L = (unsigned int) (PWM_B_PERIOD * dbl_temp);
- PWM_TIM4_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL3); // left forward PWM
- PWM_TIM4_Set_Duty(SPEED_L, _PWM_NON_INVERTED, _PWM_CHANNEL4); // left reverse PWM
- //right motors
- dbl_temp = (double)vel_right / 100;
- SPEED_R = (unsigned int) (PWM_C_PERIOD * dbl_temp);
- PWM_TIM3_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL3); // right forward PWM
- PWM_TIM9_Set_Duty(SPEED_R, _PWM_NON_INVERTED, _PWM_CHANNEL1); // right_reverse PWM
- }else{ //forward direction
- //left motors
- dbl_temp = (double)vel_left / 100; //Convert received speed in %
- SPEED_L = (unsigned int) (PWM_A_PERIOD * dbl_temp);
- PWM_TIM4_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL4); // left reverse PWM
- PWM_TIM4_Set_Duty(SPEED_L, _PWM_NON_INVERTED, _PWM_CHANNEL3); // left forward PWM
- //right motors
- dbl_temp = (double)vel_right / 100;
- SPEED_R = (unsigned int) (PWM_D_PERIOD * dbl_temp);
- PWM_TIM9_Set_Duty(0, _PWM_NON_INVERTED, _PWM_CHANNEL1); // right reverse PWM
- PWM_TIM3_Set_Duty(SPEED_R, _PWM_NON_INVERTED, _PWM_CHANNEL3); // right forward PWM
- }
- }
- static void SetBattValueToBuffer(unsigned int Value){
- //Divide to 4x4bit value
- writeBuff[0] = (char)((Value >> 12)& 0xF); //HHHsb
- writeBuff[1] = (char)((Value >> 8)& 0xF); //HHsb
- writeBuff[2] = (char)((Value >> 4) & 0xF); //Hsb
- writeBuff[3] = (char)(Value & 0xF); //Lsb
- }
- /*void OnDataReceived() {
- char next_cmd = readBuff[4];
- switch (next_cmd) {
- case CMD_DRIVE:
- Drive_Buggy();
- break;
- case CMD_BREAK:
- Break_Buggy();
- break;
- case CMD_SPIN:
- if (old_cmd != CMD_SPIN) {
- TURN_L = 0;
- TURN_R = 0;
- }
- if (readBuff[5] != 0) {
- Full_Circle_Left();
- }else{
- Full_Circle_Right();
- }
- break;
- case CMD_RESPOND:
- asm nop;
- break;
- default:
- Break_Buggy();
- }
- //lights control
- BREAK_LAMPS = readBuff[8] & 0x01;
- MAIN_BEAM = readBuff[8] >> 3;
- HEAD_LAMPS = readBuff[8] >> 4;
- if (next_cmd != CMD_SPIN) {
- if (readBuff[8] & 0x02) {
- TURN_L = ~TURN_L;
- }else{
- TURN_L = 0;
- }
- if (readBuff[8] & 0x04) {
- TURN_R = ~TURN_R;
- }else{
- TURN_R = 0;
- }
- }
- //turn off turn lights after spining
- if (next_cmd != old_cmd) {
- if (old_cmd == CMD_SPIN) {
- TURN_L = 0;
- TURN_R = 0;
- }
- }
- old_cmd = next_cmd;
- txPipe = readBuff[2] + 1;
- temp_int = ADC1_Get_Sample(13);
- SetBattValueToBuffer(temp_int);
- Blep_SendData(&writeBuff,6,TxPipe);
- } */
- void main()
- {
- Init_Buggy(); //podesavanje buggy-ja
- while(1){
- // Break_Buggy(); //zaustaviti buggy-ja
- // HEAD_LAMPS = 1; //lampice
- // MAIN_BEAM = 1;
- // PWM_TIM4_Set_Duty(PWM_A_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_A left_forward
- // PWM_TIM3_Set_Duty(PWM_D_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_D right_forward
- // delay_ms(250);
- // HEAD_LAMPS = 0; //lampice
- // MAIN_BEAM = 0;
- // Break_Buggy(); //zaustaviti buggy-ja
- // BREAK_LAMPS = 1; //zaustaviti paljenje lapmica
- // MAIN_BEAM = 1;
- // PWM_TIM4_Set_Duty(PWM_B_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL4); //PWM_B left_reverse
- // PWM_TIM9_Set_Duty(PWM_C_PERIOD >> 2, _PWM_NON_INVERTED, _PWM_CHANNEL1); //PWM_C right_reverse
- // delay_ms(250);
- // BREAK_LAMPS = 0; //zaustaviti paljenje lampica
- // MAIN_BEAM = 0;
- // Break_Buggy(); //zaustaviti buggy-ja
- // TurnLamps_Blink_R(); //red poaljenja desnih lampica
- // PWM_TIM4_Set_Duty(PWM_A_PERIOD >> 1, _PWM_NON_INVERTED, _PWM_CHANNEL3); //PWM_A left_forward
- // PWM_TIM9_Set_Duty(PWM_C_PERIOD >> 1, _PWM_NON_INVERTED, _PWM_CHANNEL1); //PWM_C right_reverse
- // delay_ms(150);
- // Break_Buggy(); //zaustaviti buggy-ja
- // Start_Buggy(); //pokretanje buggy-ja
- //Test_Drive_3();
- Start_Buggy();
- }
- }
- txt.txt
- Open with Google Docs
- Displaying txt.txt.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement